有没有办法通过 Greasemonkey 仅在命名帧(而不是所有帧)中运行我的 JS 代码
Is there a way to run my JS code just in a named frame (instead of all frames) through Greasemonkey?
假设我有一个基于框架的网页,它看起来像这样:
+-------------+---------------------------------------------------------+
| | header |
| +---------------------------------------------------------+
| | |
| | |
| | |
| | |
| | |
| | main |
| menu | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| +---------------------------------------------------------+
| | footer |
+-------------+---------------------------------------------------------+
如您所见,有一个名为 main
的框架。当用户单击menu
框架中的菜单时,任何页面(任何 URL)都可以加载到main
框架中。现在我想要的是只在main
框架中加载的页面中运行一段代码。正如我所描述的,将在main
框架中加载的页面没有 URL 模式,因此我无法在greasemonkey
脚本中指定模式。有没有办法做到这一点?
谢谢。
这个问题不清楚。 如果你的意思是一个老式的(在HTML5中已经过时的)框架集,比如:
<frameset ...>
<frame name="header" src="header.htm" ></frame>
<frame name="menu" src="menu.htm" ></frame>
<frame name="main" src="ANY_DOMAIN/page.htm" ></frame>
<frame name="footer" src="footer.htm" ></frame>
</frameset>
,然后您必须将 Greasemonkey 脚本设置为在"主"框架中可能打开的所有可能页面上触发。
这里有一种方法可以做到这一点:
// ==UserScript==
// @name _Fire on any page, but only when it is the frame named "main"
// @include *
// ==/UserScript==
//-- Run in (i)framed page only, not in parent page.
if (window.top != window.self) {
if (window.name == "main") {
// PLACE YOUR DESIRED CODE HERE.
}
}
重要:
- 仅将
@include *
用作最后的手段。 尽可能调整@include
、@exclude
和@match
语句,使其仅在您希望加载到名为"main"的框架中的页面上运行。 - 如果这些帧都是同一个域,那么您有更多的选择。 您可以只运行 om 框架集页面,并根据需要将代码注入框架。 为此打开一个新问题。
- 在 Firefox 中使用 4.01 DOCTYPE 版本进行了测试。其他浏览器和HTML5可能不同或不可能。
相关文章:
- Meteor JS中代码的重复使用部分
- 骨干模型默认值-todos.js示例中不必要的代码
- 为什么indexOf在这个js代码中不起作用
- 点击facebook像素跟踪注册(JS/JQUERY代码)
- js代码从jQuery转换为原生代码
- JS代码中的减号
- 将JS函数传递给Emscripten生成的代码
- 谷歌地图Api和JS代码不工作
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- Node.js:异步代码 + js 闭包的问题
- Chrome 开发者工具 - 控制台.log原生代码 JS
- 为jQuery和KNOCKOUT通用化javascript代码.js成为一个可重用的模块
- .ninnerHtml代码(JS/JQuery)无法识别html表中的动态内容
- 生成唯一的6位代码js
- 我得到了“;赋值中的左侧无效“;在我的代码(JS)中
- 更改代码(JS)中JQuery Mobile Calendar日期的状态
- 如何改进代码JS(Jquery)?一个简单的下拉列表
- 从传输中了解代码.js
- 这段代码(JS)的区别是什么?
- JavaScript倒计时计时器代码[JS]