2010-10-19 80 views
3
<body> 
<!-- some html code --> 

<script src='some.js'></script> 

<!-- some html code --> 

</body> 

脚本some.js加载表单。 当我按下以这种形式更新我不提交表单,而不是我形成一个查询字符串,并希望将其作为发送 some.js?key = value的使用脚本标记的跨站点脚本,更改脚本标记的src,我们可以使用id作为脚本标记

现在我需要改变script标签的src。

如果我们改变src,它会通过再次请求一个新的内容来工作吗? 我们可以使用ID作为脚本标记吗?如果是的话,是否会被所有浏览器支持?

当收到新内容时,我将清除此脚本显示的旧内容。 我认为最好是有一个div,并把所有内容放在该div内。 我正在script.js重写script.php在我的htaccess只显示用户,它只是一个JavaScript访问或没有问题,如果我给我一个.php。

以上是基本要求。

我们需要的只是使用一个脚本标记,它将从另一个站点获取内容,并且应该在这里更新。

您可以给出建议,以标准方式使用它,其中包括更新x站点的内容。

所以这就是人们所说的跨站点脚本,按需提供javascript和请添加更多的术语,如果有的话,我会更新自己。

任何形式的回应都会有好处。

回答

2

根据W3C(http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.1)'脚本'标签不支持任何标准属性(包括'id'),但是它可以在大多数浏览器中使用。我不建议替换'脚本'标签'src'属性,而是建议删除标签并添加新标签 - 这更可靠。我强烈建议阅读关于JSONP和跨源资源共享(http://www.w3.org/TR/cors/)的文章 - 这些标准应该可以帮助您达到您想要的效果。

+2

W3C是一个发布与网络有关的规范的组织。 W3Schools是一家发布质量差的教程但擅长搜索引擎优化的组织。他们不是**同一个组织。脚本元素在某些HTML版本中支持id属性。 – Quentin 2010-10-19 09:53:36

+0

我从来没有写过他们是同一个组织,虽然我承认我发布了错误的链接(现在编辑)。其余的保持真实。 – tpeczek 2010-10-19 10:07:24

+0

如果我有很多脚本标记,并且我可能不知道它的确切位置?我是否应该将该脚本标记包装成一个ID为

的ID,以便我们可以操作div内的脚本标记... – 2010-11-22 09:16:57

2

由于@tpeczek提到,要改变脚本的src属性是不够的,有些浏览器不会重新加载脚本。
使用以下方法来代替标签:

var oldScript = document.getElementById('someID'); 
var script = document.createElement("script");   
script.setAttribute("type","text/javascript");     
script.setAttribute("id","someID"); 
script.setAttribute("src",url); 

if (oldScript == null) {    
    document.body.appendChild(script); 
} else { 
    document.body.replaceChild(script, oldScript); 
} 
+0

人们说这个ID不起作用。除了你的代码是好的。 – 2010-11-22 09:16:22

+0

我在Firefox中使用,并没有问题。不知道关于跨浏览器... – Dror 2010-11-22 10:34:19

1

想不出你去的老式方法,并通过所有脚本元素行走,检查SRC找到some.js?

+0

它会工作,但比其他答复更繁琐的方式 – 2010-12-09 05:49:22