Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在VB.NET代码中动态添加JS块_Javascript_Vb.net - Fatal编程技术网

Javascript 在VB.NET代码中动态添加JS块

Javascript 在VB.NET代码中动态添加JS块,javascript,vb.net,Javascript,Vb.net,我正在开发一个系统,该系统为最终用户管理多个页面以进行数据输入。需要防止返回按钮(我知道,这并不理想,但这是必需的),但在测试模式下查看页面时禁用此“块” 我有必要的JS,它可以满足我们的需要,但是我在动态地将代码添加到页面以便启动时遇到了问题 我这是什么意思?嗯,我可以动态添加代码块,使其看起来与应该的完全一致,但代码不起作用。如果我复制并粘贴文本,并手动将其添加到aspx页面(因此不使用代码隐藏),则效果良好 以下是解决“后退”按钮问题的JS单击: > <script type=

我正在开发一个系统,该系统为最终用户管理多个页面以进行数据输入。需要防止返回按钮(我知道,这并不理想,但这是必需的),但在测试模式下查看页面时禁用此“块”

我有必要的JS,它可以满足我们的需要,但是我在动态地将代码添加到页面以便启动时遇到了问题

我这是什么意思?嗯,我可以动态添加代码块,使其看起来与应该的完全一致,但代码不起作用。如果我复制并粘贴文本,并手动将其添加到aspx页面(因此不使用代码隐藏),则效果良好

以下是解决“后退”按钮问题的JS单击:

> <script type="text/javascript">
>       function preventBack(){window.history.forward();} setTimeout("preventBack()", 0); window.onunload=function(){null};
>     </script>
我尝试过用以下方式添加JS,但似乎都不起作用:

  • Page.RegisterClientScriptBlock(“preventBack”、“函数preventBack(){window.history.forward();}setTimeout”(“preventBack()”,0);window.onunload=function(){null};”

  • 将脚本文本调整为新的StringBuilder

    scriptText.Append("<script type='text/javascript'>")
    scriptText.Append("function preventBack(){")
    scriptText.Append("   window.history.forward();} ")
    scriptText.Append("setTimeout('preventBack()', 0); ")
    scriptText.Append("window.onunload=function(){null};")
    scriptText.Append("</script>")
    ClientScript.RegisterClientScriptBlock(Page.GetType, "noback", scriptText.ToString, False)
    
  • ClientScript.RegisterClientScriptBlock(Me.GetType(),“MyScript”,“JS/noBack.JS”,True)

  • 其中noBackJS文件包含上面提到的JS代码

    正如我所说的,当呈现时,代码实际上被写入页面上的HTML中,但根本不起作用。很明显,我在这里遗漏了一些东西,但我一辈子都搞不清楚它是什么,有人能帮忙吗

    Thx.

    试试这个:

    Dim jScript As String = "<script>alert('')</script>"
    Page.ClientScript.RegisterStartupScript(Me.GetType(), "Registered Script", jScript, False)
    
    Dim jScript As String=“警报(“”)”
    Page.ClientScript.RegisterStartupScript(Me.GetType(),“注册脚本”,jScript,False)
    
    您可以使用
    eval()
    ,例如:

    eval($("#mytextbox").val())
    

    您是否尝试过使用
    RegisterStartupScript
    而不是
    RegisterClientScriptBlock
    ?您好-是的,这是上面的#1。不确定为什么通过代码添加脚本引用会产生与手动粘贴不同的结果-当然,它如何进入HTML并不重要,因为它在客户端访问页面之前不会被触发…?在#1中,u还使用了
    RegisterClientScriptBlock
    ,我的意思是尝试
    RegisterStartupScript
    ——你试过吗?啊,对不起,是的,我也试过。以与#1相同的方式尝试,也与#2相同的方式尝试,结果相同为什么OP“尝试这个”?请添加一个解释,说明你做了什么,以及你为什么这样做,不仅是为了OP,也是为了未来的访客。
    gc.TagName = "script"
    gc.Attributes.Add("type", "javascript")
    gc.Attributes.Add("src", "JS/noBack.js")
    Head1.Controls.Add(gc)
    
    Dim jScript As String = "<script>alert('')</script>"
    Page.ClientScript.RegisterStartupScript(Me.GetType(), "Registered Script", jScript, False)
    
    eval($("#mytextbox").val())