【问题标题】:Passing string value to javascript from c#.net从 c#.net 将字符串值传递给 javascript
【发布时间】:2013-05-24 05:26:07
【问题描述】:

基本上我有一个字符串变量,我使用下面的代码将此字符串变量传递给 javascript 函数。

Chart1.Series["Series1"].Points[counter].MapAreaAttributes = "onmouseover=\"showAlert("+tempString+",event);\"";

我的javascript函数如下:

function showAlert(stringVal,ex) {
       //var temp = document.getElementById("HTxtFieldPopIp").value;
      // temp = "testing";
      // alert(temp);
        alert(stringVal);
   }

但这并没有给我一个警告框。

当我删除参数并运行注释的代码片段时,也会发生同样的情况。有什么建议。

【问题讨论】:

标签: c# javascript .net


【解决方案1】:

我认为您需要在 tempString 周围加上引号。您的 C# 代码现在会产生:

onmouseover="showAlert(testing,event)"

改成

Chart1.Series["Series1"].Points[counter].MapAreaAttributes = "onmouseover=\"showAlert('"+tempString+"',event);\"";

【讨论】:

    【解决方案2】:

    你需要引用字符串:

    "onmouseover=\"showAlert("+tempString+",event);\""
    

    变成:

    "onmouseover=\"showAlert('"+tempString+"',event);\""
    

    所以,如果 tempString 等于 foo 那么动态生成的 js 将是:

    onmouseover="showAlert('foo',event);"
    

    【讨论】:

    • +0。虽然正确,但使用正确编码的字符串会更安全 - 当前样本可能会导致 XSS(old MSDN article on XSS 和现在应该使用的方法来构造字符串 JavaScriptStringEncode 的内部部分。
    • 他只是在 tempString 上做一个愚蠢的警报。我在回答为什么它不起作用:)
    • +1。可能你是对的,我不应该指望人们关心它:)。
    猜你喜欢
    • 2023-02-22
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多