在动态创建的iframe中触发Javascript

在动态创建的iframe中触发Javascript,第1张

概述我正在构建一个chrome扩展程序,只要用户点击我的Chrome扩展程序的按钮,我就可以使用Iframed出窗口. 在我的iFrame里面,我正在加载2个.js文件:来自chrome扩展的jQuery和“modal.js”. 执行检查我可以看到文件已加载(modal.js),但是我使用的是以下代码,但未触发: $('#frameID').ready(function(){ $('#sbm- 我正在构建一个Chrome扩展程序,只要用户点击我的Chrome扩展程序的按钮,我就可以使用iframed出窗口.

在我的iframe里面,我正在加载2个.Js文件:来自Chrome扩展的jquery和“modal.Js”.
执行检查我可以看到文件已加载(modal.Js),但是我使用的是以下代码,但未触发:

$('#frameID').ready(function(){    $('#sbm-new-group').click(function(){      console.log("hello");     });  });

这不起作用,即使我尝试使用$(document).ready,也没有任何事情发生.我想知道是否还有使用iframe中的JavaScript触发方法.

任何帮助都非常感谢.

解决方法 您应该访问iframe的文档以绑定.ready()处理程序.
这是一个 demo fiddle.

注意:如果您在同一个域中,则可以执行此 *** 作.

var iframe = document.getElementByID('frameID'),iframeWin = iframe.contentwindow || iframe,iframeDoc = iframe.contentdocument || iframeWin.document;$(iframeDoc).ready(function (event) {    alert('iframe ready');    // Now you can access any element in the iframe (if same domain)    $(iframeDoc).find('#sbm-new-group').on('click',function (event) {         alert('clicked');    });});

[编辑]额外备注:

>要从iframe文档中调用所有者全局范围中的函数:

parent.someMethod();
>要从所有者文档调用iframe全局范围中的函数:

iframeWin.someMethod();
>要从所有者文档中执行iframe中的脚本:

// this is called from the iframewindow.hello = function () {    alert('hello from owner!');};// we'll write some scripts within the iframe that will be executed immediatelyiframeDoc.open();iframeDoc.write('\<script>alert("hello from iframe!");\<\/script>');iframeDoc.write('\<script>parent.hello();\<\/script>');iframeDoc.close();

这是another fiddle展示这一个.

总结

以上是内存溢出为你收集整理的在动态创建的iframe中触发Javascript全部内容,希望文章能够帮你解决在动态创建的iframe中触发Javascript所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1043763.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存