没有<script>标记</script>的JavaScript代码注入

时间:2011-04-22 20:00:37

标签: javascript popup wmd shadowbox

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

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

长话短说,以下失败:

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

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

我实现这一目标的一种方法是将以下内容作为HTML的一部分返回:

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

事后看来,我本可以使用有效的图片网址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(); "/>

1 个答案:

答案 0 :(得分:0)

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

<body onload="myFunc();">