我有一个Literal,里面有一些Google分析脚本。我想在加载时从页面源删除Literal,但稍后在下拉索引更改时重新附加它。
说我的文字是这样的:
<asp:Literal ID="ltrGoogle" runat="server">
<script>
</script>
</asp:Literal>
我尝试了jquery的detach()
,show()/hide()
,attr
但是当我看到源代码时,我仍然可以看到该脚本。
完全删除它的唯一方法是在visible = false
load
事件上设置{{1}}后面的代码,但是我无法在下拉选择索引更改事件的jquery中将其设置为true,因为它从DOM中删除。
有没有办法做到这一点?
答案 0 :(得分:1)
您可以在选择的索引更改时添加script
到select
,而不是在script
索引更改中删除和添加html()
。
$('#selectId').change(function(){
$('<%=ltrGoogle.ClientID %>').html("<script><\/script>");
});
或者,将脚本放在seprate js文件上并动态添加脚本。
$('#selectId').change(function(){
var script = document.createElement( "script" );
script.type = "text/javascript";
script.src = "scriptname.js";
$("<%=ltrGoogle.ClientID %>").append(script);
});
或者,您可以尝试使用jQuery load
加载整个页面$('#selectId').change(function(){
$("<%=ltrGoogle.ClientID %>").load("urlOfHtmlContainGoogleScriptOrHtml");
});