没有 <script> 标签的 JavaScript 代码注入(inject)

标签 javascript popup wmd shadowbox

客户端脚本从服务器拉取一些 HTML 到页内弹出窗口(shadowbox 等)。

我怀疑这是通过 jQuery 的 .html() 某处完成的。

长话短说,以下失败:

<script type="text/javascript"> myFunc(); </script>

不幸的是,我无法修改客户端代码(因此我无法通过替代 channel 传递和执行 JavaScript 代码)。

我实现此功能的一种方法是将以下内容作为 HTML 的一部分返回:

<img src="." onerror=" myFunc(); "/>

事后看来,我本可以使用有效的图像 URL 和 onload,但如果这两个事件都有效,我宁愿使用错误的路径让浏览器立即引起调用(少一个 HTTP/缓存查找)。

关于目前的设置,我想听听您的意见,也许还有更好的解决方案。

编辑:

让我们假设这是我不能搞乱的客户端代码:

jQuery.get('test.php',function(data){
    jQuery('#popup').html(data);
});

这是test.php返回的数据:

Hello!
<script type=text/javascript> myFunc(); </script>

以下是我提出的解决方案:

Hello!
<img src="." onerror=" myFunc(); "/>

最佳答案

您可以在 <body> 上使用 onload .

<body onload="myFunc();">

关于没有 &lt;script&gt; 标签的 JavaScript 代码注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759518/

相关文章:

javascript - 绕过 IE "The webpage you are viewing..."弹窗

javascript - 打印使用 javascript 创建的页面而不是根据 css 设置样式

wmd - 如何结合大规模杀伤性武器和美化武器,例如堆栈溢出?

javascript - 单击编辑按钮时,stackoverflow 如何格式化文本区域?

ember.js - 如何在 ember 中为多个弹出窗口重用模态模板?

javascript - 为数学方程定制 MWD

javascript - 未捕获的类型错误 : Property '$' of object [object global] is not a function?

JavaScript 正则表达式不匹配

javascript - JavaScript 变量声明中的 If 语句

javascript - 以编程方式将输入类型 ="file"值设置为 base64 图像?