Javascript 删除脚本标记

Javascript 删除脚本标记,javascript,jquery,Javascript,Jquery,我用cms系统中的Highcharts创建了一些图表 我只允许把HTML和Java脚本放在一个小“盒子”里。这里我包括Jquery和Highcharts库。还有我自己的剧本 我的问题是cms系统在站点的末尾包含了另一个Jquery库(在我的“框”之后) $(函数(){ $.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=us-人口密度.json&回调=?',函数(数据){ $。每个(数据、函数(){ this

我用cms系统中的Highcharts创建了一些图表

我只允许把HTML和Java脚本放在一个小“盒子”里。这里我包括Jquery和Highcharts库。还有我自己的剧本

我的问题是cms系统在站点的末尾包含了另一个Jquery库(在我的“框”之后)


$(函数(){
$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=us-人口密度.json&回调=?',函数(数据){
$。每个(数据、函数(){
this.code=this.code.toUpperCase();
});
[...]
==我的角色结束了==
[...]
这段代码会破坏我的图表(当Jquery加载两次时),我想找到一个快速而肮脏的解决方案来阻止浏览器加载第二个Jquery文件

例如:

<script>
script = document.getElementsByTagName('script');
for(i = 0;i < script.length; i++)
{
   if (script[i].src == "jquery/js/jquery-1.8.3.min.js")
   document.getElementsByTagName('script')[i] = "";
}
</script>

script=document.getElementsByTagName('script');
对于(i=0;i
但这不起作用,因为脚本标记位于cms中“我的角色”之后


你有什么解决办法吗?

我不知道你能不能修改脚本标签,但你可以使用选择器

<script id="jquery1" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

然后您可以使用id选择器将其删除,如$(“#jquery1”).remove();
如果没有误解的话就可以了

我不知道你能不能修改脚本标签,但你可以使用选择器

<script id="jquery1" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

然后您可以使用id选择器将其删除,如$(“#jquery1”).remove();
也就是说,如果没有误解

仅删除脚本标记将不会清除内存,在该脚本标记中执行的任何操作都会保留下来,即使您删除了它


您是否尝试保留第一个jQuery,例如,重命名“$”或使用类似($)的参数调用包装函数?

仅删除脚本标记不会清除内存,在该脚本标记内执行的任何操作都会保留,即使在您删除它之后也是如此


您是否尝试保留第一个jQuery,例如重命名“$”或使用类似($)的参数调用包装函数?

尝试使用jQuery.noConflict(true)这是为了防止不同版本或库之间的冲突,请参阅。中的详细信息,这表明使用$是指jquery的第一个加载版本

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.noConflict demo</title>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<div id="log">
  <h3>Before $.noConflict(true)</h3>
</div>
<script src="//code.jquery.com/jquery-1.6.2.js"></script>

<script>
var $log = $( "#log" );

$log.append( "2nd loaded jQuery version ($): " + $.fn.jquery + "<br>" );

// Restore globally scoped jQuery variables to the first version loaded
// (the newer version)

jq162 = jQuery.noConflict( true );

$log.append( "<h3>After $.noConflict(true)</h3>" );
$log.append( "1st loaded jQuery version ($): " + $.fn.jquery + "<br>" );
$log.append( "2nd loaded jQuery version (jq162): " + jq162.fn.jquery + "<br>" );
</script>

</body>
</html>

jQuery.noConflict演示
$noConflict之前(真)
var$log=$(“#log”);
$log.append(“第二次加载的jQuery版本($):“+$.fn.jQuery+”
”; //将全局范围的jQuery变量恢复到加载的第一个版本 //(最新版本) jq162=jQuery.noConflict(true); $log.append(“在$noConflict(true)之后)”; $log.append(“第一次加载的jQuery版本($):“+$.fn.jQuery+”
”; $log.append(“第二次加载的jQuery版本(jq162):“+jq162.fn.jQuery+”
”;
尝试使用jQuery.noConflict(true),它旨在防止不同版本或库之间的冲突,请在上阅读更多内容。这说明使用$是指第一个加载的jQuery版本

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.noConflict demo</title>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<div id="log">
  <h3>Before $.noConflict(true)</h3>
</div>
<script src="//code.jquery.com/jquery-1.6.2.js"></script>

<script>
var $log = $( "#log" );

$log.append( "2nd loaded jQuery version ($): " + $.fn.jquery + "<br>" );

// Restore globally scoped jQuery variables to the first version loaded
// (the newer version)

jq162 = jQuery.noConflict( true );

$log.append( "<h3>After $.noConflict(true)</h3>" );
$log.append( "1st loaded jQuery version ($): " + $.fn.jquery + "<br>" );
$log.append( "2nd loaded jQuery version (jq162): " + jq162.fn.jquery + "<br>" );
</script>

</body>
</html>

jQuery.noConflict演示
$noConflict之前(真)
var$log=$(“#log”);
$log.append(“第二次加载的jQuery版本($):“+$.fn.jQuery+”
”; //将全局范围的jQuery变量恢复到加载的第一个版本 //(最新版本) jq162=jQuery.noConflict(true); $log.append(“在$noConflict(true)之后)”; $log.append(“第一次加载的jQuery版本($):“+$.fn.jQuery+”
”; $log.append(“第二次加载的jQuery版本(jq162):“+jq162.fn.jQuery+”
”;
也许这就是解决方案:也许这就是解决方案:不幸的是,我无法将id添加到脚本标记中。:(好吧,不用担心。再次使用选择器:$(“script[src='jquery/js/jquery-1.8.3.min.js'])。删除();不幸的是,我无法将id添加到脚本标记中。:(好吧,不用担心。再次使用选择器,就像这样:$(“脚本[src='jquery/js/jquery-1.8.3.min.js']”。删除();谢谢!我爱Stackoverflow!!:)谢谢!我爱Stackoverflow!!:)