SCRIPT70:添加选项以从最近关闭的 iframe 中选择元素时权限被拒绝

2023-12-28

我们在从 iframe 向选择元素添加选项时遇到问题。该代码在 Chrome、Firefox 和 Opera 中运行良好,但在 IE11 中,当尝试从父窗口访问最近创建的选项时,我们会收到“SCRIPT70:权限被拒绝”。

我们需要的是将选项添加到从列表中选择它们的选择元素。该列表显示在灯箱(带有 iframe)中,当选择一个元素时,必须将其添加到选择元素中,然后关闭灯箱(并且破坏 iframe)。我们所拥有的是这样的(简化的):

父窗口:

<select id="dropdown">
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>

<!-- in the real code, this iframe is shown when a button is pressed -->
<iframe src="iframe.html"></iframe>
<script>
  $(document).ready(function() {
    $('#dropdown').on('change', function() {
      console.log($(this).children().last().val());
    });
  });
</script>

和 iframe.html:

<a href="#" data-val="4">Add 4</a>
<a href="#" data-val="5">Add 5</a>
<a href="#" data-val="6">Add 6</a>
<script>
  $(document).ready(function() {
    $('a').on('click', function() {
      var p = window.parent;
      if(p) {
        var dropdown = p.document.getElementById('dropdown');
        if(dropdown) {
            var opt = new Option($(this).data('val'), $(this).data('val'));
            dropdown.options[dropdown.options.length] = opt;
            //close self
            $('iframe', p.document).remove();
        }
      }
    });
  });
</script>

如果您选择 iframe 的任何项目,该选项将添加到选择元素中,并且 iframe 将被销毁。现在,如果您访问附加到 select 元素的 onchange 事件中最近添加的选项,您会收到“SCRIPT70:权限被拒绝”。最奇怪的是,第一次触发事件时它不会发生。你需要触发 onchange 事件至少两次才能得到错误.

你可以看到一个工作小提琴 http://jsfiddle.net/lucas29252/2psMW/

Solution

如果我们改变选项添加到 select 元素的方式它就像一个魅力 http://jsfiddle.net/lucas29252/2psMW/2/.

//dropdown.options[dropdown.options.length] = opt;
dropdown.appendChild(opt);

其他不会引发错误的场景

  • 如果 iframe 没有被破坏,而是隐藏了 http://jsfiddle.net/lucas29252/2psMW/3/
  • 如果在附加到另一个对象的事件中访问该选项 http://jsfiddle.net/lucas29252/2psMW/4/(即锚点的 onclick 事件)

问题

我希望有人(也许是 IE 团队的一些 Microsoft 员工)可以解释这种奇怪行为的细节。


尝试将其放入您的 html 页面中,看看是否有任何不同

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SCRIPT70:添加选项以从最近关闭的 iframe 中选择元素时权限被拒绝 的相关文章

  • PHP函数返回值到html标签

    我想获取函数的返回值并将其显示到特定的id 在我的 Class php 中 我有一个名为 login 的函数 用于验证密码是否正确 不正确
  • Ember.JS - 如何在同一页面中使用多个模型、控制器和视图?

    我主要了解 Ember JS 的基础知识 大多数示例实际上只处理单个控制器和模型以在页面上显示某些内容 我真的很想用 Ember 构建一个完整的 Web 应用程序 所以有人能告诉我如何组织和连接多个控制器 模型和视图到一个页面中吗 例如 如
  • 使react-leaflet能够离线使用

    我一直在使用反应传单 https github com PaulLeCam react leaflet图书馆 到目前为止运作良好 现在我希望网站预加载尽可能多的图块 以便网络应用程序 也是 PWA 可以在没有互联网的情况下使用 我找到了一些
  • Aptana Studio 3 上的预览选项卡在哪里?

    我在 Windows PC 上使用 Aptana Studio 2 并有一个选项卡用于在 IE 上预览页面 另一个选项卡用于在 Firefox 上预览 但我切换到了 Aptana 3 我不知道是没有预览还是我没有找到它 是的 我在 stac
  • KeyboardEvent.keyCode 已弃用。这在实践中意味着什么?

    根据 MDN 我们绝对应该not正在使用 keyCode财产 它已被弃用 https developer mozilla org en US docs Web API KeyboardEvent keyCode https develope
  • css 计数器在 Internet Explorer 中无法工作以获取隐藏内容 - 如何修复?

    我们想要一些编号列表 并发现了这个很酷的计数器 您可以在 css 中使用它来让浏览器为您计算数字 ol instructions counter reset instructions section ol instructions gt l
  • Flux + React.js - 操作中的回调是好还是坏?

    让我解释一下我最近遇到的问题 我有 React js Flux 驱动的应用程序 有一个列表显示文章数量 注意 应用程序中有多个不同的列表 和文章详情查看在里面 但每个列表只有一个 API 端点 它返回文章数组 为了显示我需要的详细信息fin
  • 如何访问另一个 mobx 商店中的 mobx 商店?

    假设以下结构 stores RouterStore js UserStore js index js each of Store jsfiles 是一个 mobx 存储类 包含 observable and action index js只
  • React无限滚动scrollableTarget动态获取id?

    我在我的项目中使用react infinite scroll component 如何让scrollableTarget动态获取item id 我试过这样scrollableTarget item id 但它不起作用 必须与该 div 具有
  • 使用 html5 分块上传文件

    我正在尝试使用 html5 的文件 API 分块上传文件 然后在服务器端用 php 重新组装它 我正在上传视频 但是当我在服务器端合并文件时 大小增加了 并且它变成了无效文件 请注意 以下 html5 代码仅适用于 chrome 浏览器 在
  • 如何使 jQuery 向上动画

    我有一些 jquery 运行得相当好 但是当我将鼠标悬停在有问题的元素上时 底部向下扩展 这并不意外 但不是所需的效果 我希望元素的底部保持静止 而元素的顶部向上扩展 如果您想查看我目前拥有的内容 您可以导航至http demo ivann
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque
  • 替换两个引号之间的字符串

    我想转动一根绳子str hello my name is michael what s your s into hello my name is span class name michael span 我怎样才能在 JavaScript
  • 在javascript中动态生成行?

    我是 javascript 新手 我想在按下 Tab 时动态生成行 并希望获取在动态生成的行中输入的值 以便我可以在 servlet 代码中使用这些值 这是我的html
  • gwt 中的垂直居中

    如何使用垂直面板在 gwt 中垂直居中 或者请告诉我有什么方法可以进行垂直居中 如果你想直接使用VerticalPanel从代码中 您需要使用setVerticalAlignment HasVerticalAlignment ALIGN M
  • 当选择下拉列表中的某些值时,取消选中复选框

    当我从下拉列表中选择某个值或用户未从下拉列表中选择任何值时 我需要取消选中复选框 我现在正在使用 Jquery 这是我现在使用的代码 但它不起作用 Script
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • span 和 iframe 正文中的宽度(以像素为单位)

    我需要知道 a 的宽度 nbsp 以像素为单位 以及是否取决于字体大小 另外 页面中不同元素的情况是否有所不同 还有 就是 nbsp 与常规不同 目的 nbsp 不间断空格 位于正常空格之上是为了防止单词之间出现换行 您可以使用多个 nbs
  • 如何更改订阅值?使用 rxJS

    我正在创建一个计时器 需要你的帮助 我刚刚学习 Angular 和 rxJS 对此我有一些疑问 我正在创建一个具有启动 停止 暂停 重置功能的计时器 并且 btn Reset 必须将我的计时器 暂停 到 300 毫秒 怎么做 D 我的启动定
  • 在 javascript 中使用 xPath 解析具有默认命名空间的 XML

    我需要创建一个 XML xPath 解析器 所有解析都必须在客户端进行 使用 JavaScript 我创建了一个 javascript 来执行此操作 在默认名称空间发挥作用之前 一切看起来都正常 我根本无法查询具有默认命名空间的 XML 我

随机推荐

  • MongoEngine:关闭连接

    我花了很长时间试图找到一个简单的例子 其中使用了 MongoEngine 并且关闭了连接 终于弄清楚并发布我的代码 我知道这是一个老问题 但如果其他人正在搜索 我想我会给出一个替代答案 close 实际上并没有从 MongoEngine 的
  • 理解浮点变量

    有问题 无论如何我都无法理解 请看一下这段代码
  • Swift Playgrounds 中的链接页面 [Xcode]

    我是 Swift Playgrounds 的新手 在 Xcode 中制作 Swift Playground 时遇到了一些问题 这是我的 Playground 主页面 import UIKit import PlaygroundSupport
  • Python lambda函数根据字典对列表进行排序

    下面的示例代码检索所有正在运行的进程并打印它们 他们是按照第三个例子写的here http www programcreek com python example 53869 psutil process iter最后一张来自here ht
  • Visual Studio 2017 中适用于 JavaScript 和 TypeScript 文件的 Visual Studio Code 颜色主题

    正如主题所示 我想在 Visual Studio 2017 中为 JavaScript 和 TypeScript 文件导入 设置 Visual Studio Code 颜色主题 因此 我想为其设置颜色主题的文件是 js jsx ts and
  • jQuery Colorbox,iframe 内容在 iPad 中不滚动

    在 iPad 上查看时 Colorbox iframe 内容不会滚动 请阅读以下内容 https github com jackmoore colorbox issues 41 issuecomment 5244379 https gith
  • 为什么当 GMSMarker 与 GMSOverlay 重叠时我需要点击两次 GMSMarker 才能显示其信息窗口?

    我有一个GMS覆盖在 GMSMapView 中 所以我用以下方法监听对它的点击 func mapView mapView GMSMapView didTap overlay GMSOverlay Overlay was tapped 然后我
  • WAMP 上的 Mysqli,错误 - 连接尝试失败

    添加信息 我尝试了全新安装的 codeigniter 只需添加 this gt load gt database 默认控制器会触发相同的错误 我检查了 phpinfo 并且 mysqli 已安装 我用下面的代码检查了它并且它正在工作 当我打
  • 复制文件,保留权限和所有者

    Shutil 的文档告诉我 即使是更高级别的文件复制函数 shutil copy shutil copy2 也无法复制所有文件元数据 在 POSIX 平台上 这意味着文件所有者和组以及 ACL 都会丢失 如果我需要在python中复制文件
  • 检查视图是否自午夜以来已加载

    我有一个 ViewController 它对数组执行随机洗牌并将文本吐出到标签 在viewDidLoad方法 问题是 每当我导航到同一个 ViewController 时 它都会再次执行随机播放 而我每天只需要它随机播放一次 因此 我需要检
  • 从 iOS 应用内购买收据中检索订单 ID/文档编号

    目前 我们的系统的工作方式是 当用户购买应用内订阅时 购买的收据数据会发送到服务器 验证后我们将相应地更改用户的权利 有时 由于各种原因 我们可能会遇到这样的问题 用户可能没有获得应有的权利 在这种情况下 他们会通过电子邮件向我们发送从 A
  • 在 GSON 中使用泛型

    我正在使用 GSON 将 JSON 解码为 T 类型的对象 例如 public T decode String json Gson gson new Gson return gson fromJson json new TypeToken
  • 禁用 XAML 预览

    在 Visual Studio 2008 中 当我从项目中打开 XAML 文件时 它会显示水平分割 预览位于顶部 XAML 位于底部 大多数时候 我们的 XAML 不会在预览中呈现 因此我只需等待它尝试呈现 然后关闭预览 有没有办法让它默认
  • 如何安装我自己的扩展? VS代码

    我使用 Yeoman Generator 制作了自己的扩展包 但我不知道如何将其安装在我的 vscode 上 也许如果我将扩展包导出到市场 这是可能的 但我不想这样做 You can 将扩展打包到 vsix 文件中 https code v
  • bash——在运行之间存储变量的更好方法?

    我制作了一个 bash 脚本 我使用 crontab 每小时运行一次 并且我需要存储一个变量 以便下次运行它时可以访问它 该脚本每次运行时都会更改变量 因此我无法对其进行硬编码 现在我将其写入 txt 文件 然后读回 还有比这更好的方法吗
  • 在数据库的未知表中查找特定列?

    我试图在包含 125 个表的数据库中找到未知的特定列 我正在寻找一个通配符 例如 watcher 这可能吗 SELECT TABLE NAME COLUMN NAME DATA TYPE IS NULLABLE COLUMN DEFAULT
  • Java/HTML 编码问题(破折号变成 -)

    情况 我正在尝试修复一些使用 Java 后端通过 Velocity Mail Manager 发送自动电子邮件的代码 问题 主题在Java代码中设置如下String subject Hello what s next 然后将其设置为消息对象
  • 重复将数据从 Windows 服务传输到控制台应用程序

    这是我的场景 我有一个 Windows 服务 每 20 分钟运行一次任务 任务是 从远程网站托管的 API 请求更新 响应是 JSON 对象列表 当服务收到该列表时 它会执行一组操作 然后附加更多 JSON 对象 最后服务必须将该列表推送到
  • x86 上两个 128 位整数的高效乘法/除法(无 64 位)

    编译器 明威 海湾合作委员会 Issues 不允许使用 GPL LGPL 代码 GMP 或任何 bignum 库对于这个问题来说都太过分了 因为我已经实现了该类 我已经构建了自己的128 bit固定大小的大整数类 旨在用于游戏引擎 但可以推
  • SCRIPT70:添加选项以从最近关闭的 iframe 中选择元素时权限被拒绝

    我们在从 iframe 向选择元素添加选项时遇到问题 该代码在 Chrome Firefox 和 Opera 中运行良好 但在 IE11 中 当尝试从父窗口访问最近创建的选项时 我们会收到 SCRIPT70 权限被拒绝 我们需要的是将选项添