asp.net - 停止你的代码注入(inject) javascript 两次?

标签 asp.net javascript

我有一个可以执行某些操作的方法,它将一个 javascript 方法放入它使用的页面中。我需要确保它只将 javascript 方法放入一次,无论调用多少次。

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

最佳答案

我认为您想要查看的是 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

关于asp.net - 停止你的代码注入(inject) javascript 两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1820980/

相关文章:

javascript - 单击单选按钮时如何显示下拉列表?

asp.net - 如何使用 asp.net vb 将保存在单独变量中的字符串日期转换为日期?月份变量以文本格式写出

javascript - 如何更改背景以放置 particles.js?

javascript - 页面滚动定义的对象高度

c# - mmenu 菜单系统在 .Net 表单标签中不起作用

c# - 如何使用 nhibernate、linq 创建搜索功能?

c# - 从单独的线程发送邮件时出错 - asp.net/C#

javascript - 如何正确组织 JavaScript 代码?

javascript - Transpiller 和 Internet Explorer 8

javascript - 从 JSON 对象中删除空格,但不在引号内