- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Google Chrome 中的 UserScripts 时遇到了一点问题,准确地说是关于获取 iframe 的对象窗口。通过 Google Chrome 控制台非常可行,通过 UserScript 非常不可能,到目前为止似乎如此。老实说,这似乎是故意的,好像有某种原因不允许我访问其他窗口对象。
document.body.innerHTML += "<iframe name='iframe'></iframe>";
console.log(top.frames.iframe);
console.log(window.frames.iframe);
console.log(unsafeWindow.frames.iframe);
console.log(document.getElementsByName('iframe')[0].contentWindow);
console.log(document.getElementsByName('iframe')[0].contentDocument.defaultView);
-->
chrome-extension://eelclpmekkanegjojjmaldeddncficoj/script.js:14 undefined
chrome-extension://eelclpmekkanegjojjmaldeddncficoj/script.js:15 undefined
chrome-extension://eelclpmekkanegjojjmaldeddncficoj/script.js:16 undefined
chrome-extension://eelclpmekkanegjojjmaldeddncficoj/script.js:17 undefined
chrome-extension://eelclpmekkanegjojjmaldeddncficoj/script.js:18 undefined
请问Chrome的问题是什么?我真的不明白为什么 UserScript 比普通脚本对 javascript 的访问要少,这意味着什么?顺便说一下,是的,iframe 在同一个域和协议(protocol)上。 :(
最佳答案
Chrome 不支持 UnsafeWindow,试试 TamperMonkey,很确定它提供了对该变量的只读访问。
contentWindow.document 不适用于 Chrome。 contentDocument 应该工作。
此外,也不支持跨域的 XMLHttpRequest。其中大部分是出于安全目的。 Chrome 中的用户脚本是内容脚本,它们无法访问网页或其他内容脚本定义的函数/变量。主要是为了脚本的安全和隔离,防止脚本相互冲突。
至于 document.getElementsByName('iframe')[0].contentWindow,我认为这是因为您尝试在 iframe 中添加的方式。对于初学者,不要将您的 iframe 命名为“iframe”,这始终是一种非常糟糕的做法。
与其尝试将其添加到正文的 innerHTML 中,不如使用 appendChild(),并将新的 iframe 对象附加到 document.body 中。此外,尝试使用 document.body.getElementsByName 而不是 document.getElementsByName。
我为 firefox 编写了 greasemonkey 脚本,而 Chrome 似乎限制太多。我希望您了解用户脚本的定位技巧。查看http://wiki.greasespot.net/Location_hack .您可以在您的用户脚本中使用 Javascript ;) 现在只是想让您知道,我非常警告不要乱用 iframe 和用户脚本。我已经为 Greasemonkey 编写了一个脚本,已经尝试了 6 个月,但不知何故,当我在 iframe 中涉及代码时,有一半的时间结果是未定义的,而且我从来没有遇到过 javascript 的问题。此外,如果您将 .js 脚本对象从用户脚本注入(inject)到文档中,新代码仍然会受到某种影响,因此元素如何随机显示为未定义。经过 6 个月的尝试,我放弃了,我只有一个小书签,可以手动将 .js 脚本注入(inject)文档。当然,您不必那样做,您可以只使用位置 hack 从用户脚本中注入(inject)代码。但是至于为 iframe 编写基于用户脚本的整个脚本,我离得很远...
关于javascript - Google Chrome UserScript - 使用其他窗口和捆绑的手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4062879/
在 firefox 中,链接手形光标显示正常,但在 IE7 中显示文本光标。 如何在所有浏览器的链接上获得相同的光标(手)? 我可以在 CSS 重置中添加一些内容,以便在所有浏览器中的链接上获取光标吗
我试图在表单元素上方显示我的表单标签,所以我在我的 CSS 中使用了 display:block。但是,我无法通过这种方式每行显示超过 1 个表单元素。 如何正确更新我的 CSS 以在表单元素上方显示
我想找到人手的宽度,但卡在手上的洞上。 我有一只手的图片并找到了它的二进制文件。手上有一个圆圈,其半径和中心已知(引用对象)。我想找到手的宽度,但它上面有一些补丁(孔),这阻碍了找到手的最佳宽度。 这
我尝试为一款游戏制作一个机器人,但他们有很酷的反像素机器人技术。 所以我想,“如果我可以制作一个机器人,只检查光标是否变为手形然后单击,它就会起作用,”因为我需要收集奖金盒,当你将光标指向它时,它变为
我尝试为一款游戏制作一个机器人,但他们有很酷的反像素机器人技术。 所以我想,“如果我可以制作一个机器人,只检查光标是否变为手形然后单击,它就会起作用,”因为我需要收集奖金盒,当你将光标指向它时,它变为
所以我有一副牌的代码,但我不知道如何让另一个类来处理 4 手牌,每手 10 张牌。另一类应在屏幕上以文字形式打印 4 手 10 张随机卡片。有人可以向我展示如何完成此任务的代码吗?我也使用 blueJ
我正在尝试通过在开放正方形内插入图标来使用 fontawesome 创建图标。悬停时,我想更改正方形内背景的颜色,以及正方形的实际颜色和图标颜色。 我在这里举了一个例子:http://jsfiddle
当我手动启 Action 业时,我正在寻找设置变量的正确方法。 我试过 : stages: - test my_job: stage: test script: - echo "H
我必须添加以下代码: a {cursor:pointer;} 在 angular-ui-bootstrap 中将光标更改为标签、分页、下拉切换等链接上的指针/手。 为什么默认不改为指针?这是故意的吗?
我是一名优秀的程序员,十分优秀!