2014-01-23 49 views
1

我们都知道<script src="/something.js"></script>的作用。该文件被加载到页面中并运行脚本。更改解释脚本标记的默认浏览器行为

有什么方法可以覆盖解释<script>元素的默认行为吗?

我想要相同的语法(<script src='...'></script>),它只会从something.js(可能通过XHR/jQuery ajax)获得代码并将它传递给foo (...) {...}函数。那么我会关心我会用它做什么。

要澄清的问题:

我可以用很容易地创建一个伪<script>标签替代:

<div data-script-src="/1.js"></div> 
<div data-script-src="/2.js"></div> 
<div data-script-src="/3.js"></div> 
<div data-script-src="/4.js"></div> 

然后在js身边,我会做:

var $scripts = $("[data-script-src]") 
    , scriptContents = []; 
(function loadInOrder (i) { 
    if (!$scripts[i]) { alert("Loaded"); } 
    $.ajax($($scripts[i]).attr("data-script-src"), function (data) { 
     scriptContents[i] = data; 
     loadInOrder(++i); 
    }); 
})(0); 

但如何我可以用<script>替换div[data-script]吗?例如,如何强制浏览器NOT加载具有data-load="false"属性的<script>标签?

+0

您可以使用jQuery的getScript加入的方法来达到同样的效果? http://api.jquery.com/jquery.getscript/ – Askanison4

+0

我想你正在用它来分析...让我们说其他网站:)。也许一些深层浏览器设置?或使用例如wget下载网站,并用其他东西替代

2

我不知道,这是否会回答你的问题,但是没有更多的数据,我可以建议:

创建自己的PHP文件,将工作作为一种门的。然后

如果需要添加你的 真正脚本类型将搜索 的MyScript标签和运行JavaScript代码
<?php 
    $file = file_get_contents(your_url); 
    $file = str_replace('<script', '<myscript', $file); 
    $file = str_replace('</script>', '</myscript>', $file); 
    echo $file; 
?> 

然后......

可以使用div元素以及(如果脚本并且您需要验证):

substitute: '<script' -> '<div data-id="my-script" ' 
substitute: '<script' -> '</div>' 

如果您需要更多帮助,请填写。请不要低估,因为问题对我来说有点模糊:)。

PS。我不知道这些是否是来自互联网的您的网站或网站,您希望覆盖默认行为。所以一定要小心你是什么“file_getting_contents”,因为这将直接回应到你的浏览器...... :)。

+0

我正在寻找客户端唯一的解决方案... –

+0

好的。我会想更多,也许会想到一些东西:)。最好的祝福。 –

相关问题