我有一个做某事的方法,它将javascript方法放入它使用的页面中。我需要确保它只将javascript方法放入一次,无论它被调用多少次。
最好的方法是什么?我可以搜索到目前为止已呈现的页面部分,并查看该方法是否已创建?
答案 0 :(得分:2)
我认为你想要看的是ClientScriptManager对象的IsClientScriptBlockRegistered / IsStartupScriptRegistered
方法,它们允许你检查你是否已经将一些带有密钥的脚本放到页面上,例如。
Dim myScriptKey As String = "myScriptBlock"
Dim myScript As String = "<script type='javascript'>alert('Hello world');</script>"
If Page.ClientScript.IsClientScriptBlockRegistered(myScriptKey) Then
'We've already output some script with this key to the page so don't put it out again
Else
Page.RegisterClientScriptBlock(type:=GetType(Me), key:=myScriptKey, script:=myScript, addScriptTags:=False)
End If
答案 1 :(得分:0)
如果您的服务器端技术是asp.net,您可以在页面加载事件中进行调用并将其包装在!Page.IsPostback
块中。我猜许多(大多数)服务器端技术都有类似的东西。
答案 2 :(得分:0)
这是服务器端还是插入另一个javascript方法的javascript方法?
如果后者只检查功能名称,例如你在哪里创建function onlyOnce() {...}
。然后就做
if(onlyOnce = undefined) {
//insert method
}
答案 3 :(得分:0)
使用外部JS文件并嵌入一次 - 将所需的所有j放入其中。然后不显眼地附上所有事件。这意味着事件在需要时附加,并且功能只能包含一次。这样可以避免程序解决问题。