Javascript 删除脚本标记
我用cms系统中的Highcharts创建了一些图表 我只允许把HTML和Java脚本放在一个小“盒子”里。这里我包括Jquery和Highcharts库。还有我自己的剧本 我的问题是cms系统在站点的末尾包含了另一个Jquery库(在我的“框”之后)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
$(函数(){
$.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!!:)