2013-02-14 12 views
3

我有一个网站,我通过iframe加载,它在同一台服务器上。我需要在加载iframe中的页面之前删除特定的脚本标记。换句话说,在执行脚本之前拦截并删除脚本。在执行前从网站中删除脚本

我试图

var x = doc.getElementsByTagName('script'); 
doc.getElementsByTagName('head').removeChild(x); 

但是,这似乎并没有能够赶上这个脚本在执行之前。还有哪些其他方法或选项可以实现这一目标?

感谢

+0

你可以将脚本包装在一个函数中,只需执行函数 – Shanimal 2013-02-14 16:20:23

+0

@Shanimal你的意思是脚本,我的脚本能够抓住目标脚本或目标脚本本身? – user2028856 2013-02-14 16:26:01

+0

@ Chris.Ackley基本上我需要在iframe中完全加载之前将该脚本从网站中删除if(self!== top){ \t \t \t top.location = parseURL(self.location);' – user2028856 2013-02-14 16:37:02

回答

0
<script type="text/plain"> 
    alert('foo') 
</script> 
+0

文本/纯脚本不执行 – Shanimal 2013-02-14 16:49:43

+0

对不起,我不太清楚这是如何工作的,我需要在执行之前捕捉并删除iframed网站中的脚本。上面的脚本如何捕获并防止这种情况? – user2028856 2013-02-14 16:51:30

+0

你不能在另一个域上执行javascript,如果这就是你想要做的:) – Shanimal 2013-02-14 16:52:31

1

我不认为你可以加载在你所描述的设置停止。

但是,您可以将您的iframe指向您自己的服务器端脚本(例如perl,php),该脚本将检索URL并剥离该脚本,然后返回其他所有内容。

+0

你将不得不重写资源的路径,更不要说取决于网站它可能会破坏无论如何,因为它期望另一个网址。更何况这是一个鸡巴的举动,这可能是该人使用一个大片脚本的原因。 – Marco 2013-02-14 17:05:01

+0

所有好点@Marco,可能会有一个走在路径的东西,我不会在这里描述。我认为这是否应该被鼓励或不是全部取决于“同一台服务器”的含义。如果它是托管他人网站的公共服务器,那么是的,这可能是他们试图保护其资产/资源的一个原因。 – vol7ron 2013-02-15 03:24:42