2

我的 JavaScript 生成的超链接如下:

'<a href="#" onClick=passSearchTerm("' +aa + '");>View</a>' 

当字符串如下时参数通过wells:

var aa = 'TAGS(\\"ab\\")'; 

我通过在函数内部发出警报来确认它

函数 passSearchTerm(aa) { alert(aa); }

但是,当 var 定义如下时,这不会发出警报:

var aa = 'TAGS(\"ab\")'; //“a”和“b”之间的空格

谁能建议我如何传递这样的字符串?在此先感谢您的帮助。实际上我正在尝试传递可能的以下字符串:

标签(“a或b”)

4

3 回答 3

5

通过 javascript 生成您的超链接时,请使用 encodeURIComponent ex。

"<a href=\"#\" onclick=\"passSearchTerm('" + encodeURIComponent(aa) + "')\">View</a>"

并在检索时使用 decodeURIComponent

function passSearchTerm(aa) { alert(decodeURIComponent(aa)); }
于 2013-01-09T10:12:14.133 回答
3

我认为你只是过度使用了你的逃生方法。

这对我有用。

  var aa = 'TAGS("a b")'; 
  // var aa =  'TAGS(\"a b\")'; 

  var e = document.createElement("A");
  e.href = "#";
  e.setAttribute( "onClick", "passSearchTerm('" + aa + "');" );
  e.innerText = "View";

  document.body.appendChild(e);

  function passSearchTerm(p){
    alert(p);
  }

</script>
于 2013-01-09T09:56:38.780 回答
0
var aa = 'TAGS(\\"a&nbsp;b\\")';

这段代码确实有效。这是因为在 html 空间中应该写为&nbsp;

[更新]

这是完整的示例。http://jsfiddle.net/YAJNL/

于 2013-01-09T09:53:32.123 回答