停止你的代码注入两次javascript?

时间:2009-11-30 16:50:53

标签: asp.net javascript

我有一个做某事的方法,它将javascript方法放入它使用的页面中。我需要确保它只将javascript方法放入一次,无论它被调用多少次。

最好的方法是什么?我可以搜索到目前为止已呈现的页面部分,并查看该方法是否已创建?

4 个答案:

答案 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放入其中。然后不显眼地附上所有事件。这意味着事件在需要时附加,并且功能只能包含一次。这样可以避免程序解决问题。