javascript - 使用 jquery html() 将脚本插入到新窗口

标签 javascript jquery html insert window

我通常使用 jQuery html() 方法将 ajax 请求返回的 html+脚本插入到文档中,该方法也会执行脚本。

意味着如果我写:

$(document.body).html("<script>alert()</"+"script>");

它将执行脚本。 (+ 仅适用于浏览器,因为在字符串中写入 </script> 不起作用。)

问题 - 如果我对一个新打开的窗口做同样的事情,它不起作用。即不执行脚本。为什么?

最佳答案

如果目标页面和主页面托管在相同的 URL 和协议(protocol)中,您可以在打开的窗口上执行任何脚本。 (我假设它是使用 Window.open() 函数打开的)

保存对打开窗口的引用...

var popup = window.open("/page2.html");

并使用它来访问其文档:

$(popup.document.body).append("<script>alert()</script>");

如果您也在打开的窗口中导入 jQuery,您也可以调用

popup.$(popup.document.body).append("<script>alert()</script>");

关于javascript - 使用 jquery html() 将脚本插入到新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28530579/

相关文章:

Javascript:如何加载更新的音频文件并播放它

javascript - 如何使用同一按钮设置多个输入字段的值

javascript - 设置 ScrollMagic 插件

html - 在 div 中垂直居中一段文本

html - 浏览器不应用 css 链接到 svg 这是 img 的来源

html - 表格 css 宽度被 colspan 属性破坏

javascript - 使用 Selenium RC 捕获浏览器

javascript - 如何加快 Magento 电子商务网站的索引过程?

javascript - HTML/JS : Calculating and displaying price

javascript - JQuery 背景颜色动画不起作用