gpt4 book ai didi

c# - 从文件后面的 asp.net 代码注入(inject) Javascript

转载 作者:IT王子 更新时间:2023-10-29 04:45:42 25 4
gpt4 key购买 nike

我注入(inject)的是否正确?

string myScriptName = "EventScriptBlock";
string myScript = string.Empty;

//Verify script isn't already registered
if (!ClientScript.IsClientScriptBlockRegistered(myScriptName))
{
Response.Write('b');
myScript = "\n<script type=\"text/javascript\" language=\"Javascript\" id=\"EventScriptBlock\">\n";
myScript += "alert('hi');";
myScript += "\n\n </script>";

ClientScript.RegisterClientScriptBlock(this.GetType(), myScriptName, myScript);
}

这是在我的 Page_Load 中,但我从未看到警告,也没有 JavaScript 错误。

最佳答案

您可以使用 registerstartupscript 而不是 registerclientscriptblock!

注册启动脚本当您使用 RegisterStartupScript 时,它会在页面中的所有元素之后(就在表单的结束标记之前)呈现您的脚本。这使脚本能够调用或引用页面元素,而不会在页面的 DOM 中找不到它们

RegisterClientScriptBlock当您使用 RegisterClientScriptBlock 时,脚本会在 Viewstate 标记之后呈现,但在任何页面元素之前呈现。由于这是一个直接脚本(不是一个可以调用的函数,它会立即被浏览器执行。但是浏览器在这个阶段没有在页面的 DOM 中找到标签,因此你应该收到一个“找不到对象”错误

Difference between registerstartupscript and registerclientscriptblock

protected void Page_Load(object sender, System.EventArgs e)
{
string myScript = "\n<script type=\"text/javascript\" language=\"Javascript\" id=\"EventScriptBlock\">\n";
myScript += "alert('hi');";
myScript += "\n\n </script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), "myKey", myScript, false);
}

关于c# - 从文件后面的 asp.net 代码注入(inject) Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7046565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com