我使用以下jQuery将5页加载到当前页面
$('.main').load('main.cfm');
$('.bu1').load('bu1.cfm');
$('.bu2').load('bu2.cfm');
$('.bu3').load('bu3.cfm');
$('.bu4').load('bu4.cfm');
但每个.cfm
都包含以下script
个标记
<script src="js/jquery.speedometer.js"></script>
<script src="js/jquery.jqcanvas-modified.js"></script>
<script src="js//excanvas-modified.js"></script>
<script>
$(function(){
$('#MDTQ').speedometer({
backgroundImage: "url(speedo/background-r.png)",
maximum: 15,
scale: 15,
suffix: ''
});
$('.changeSpeedometer').click(function(){
$('#MDTQ').speedometer({ percentage: $('.speedometer').val() || 0 });
});
});
</script>
有没有办法在加载时从下面的页面中删除下面的内容?
$('.bu1').load('bu1.cfm');
$('.bu2').load('bu2.cfm');
$('.bu3').load('bu3.cfm');
$('.bu4').load('bu4.cfm');
由于
答案 0 :(得分:5)
由于load是$ .get的快捷方式,可以方便地为您自动插入内容,您可以使用它并在自己插入内容之前过滤掉脚本标记:
$.get('bu1.cfm', function(html) {
var markup = $($.trim(html));
markup.find('script').remove();
$('.bu1').html(markup);
});
编辑:
按src过滤:
$.get('bu1.cfm', function(html) {
var markup = $($.trim(html));
$('script[src]', markup).remove();
$('.bu1').html(markup);
});
答案 1 :(得分:1)
将$.get
与相对较新的$.parseHTML
方法一起使用。
$.get('bu1.cfm', function(html) {
var markup = $.parseHTML(html);
$('#bu1').html(markup);
});
默认情况下, $.parseHTML
将删除标记中的所有脚本标记。
如果您只想删除具有src属性的脚本,请使用2nd属性,然后过滤结果。
$.get('bu1.cfm', function(html) {
var markup = $($.parseHTML(html,true));
var scripts = markup.find("script").addBack().filter("script");
scripts.filter("[src]").remove();
$('#bu1').html(markup).append(scripts);
});
答案 2 :(得分:0)
不确定是否使用正则表达式可能是一个考虑因素: 注意:我使用了具有特定id的div而不是要测试的类。此外,我的测试文件是一个完整的HTML文档。我之前没有使用过cfm,但也许这个概念是一样的。
$(function() {
$.ajax({type: "GET",
url: "yourfile.cfm",
dataType: "html",
error:function() { alert("error") },
success: function(data) {
$("#main").html(data.replace(/<script[^>]*>[\w\W]*?<\/script>/g,""));
}});
});