客户端脚本从服务器拉取一些 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();">
关于没有 <script> 标签的 JavaScript 代码注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759518/