转义函数调用的变量

Escaping variables for a function call?

本文关键字:变量 函数调用 转义      更新时间:2023-09-26

在一个函数中,我正在构建一个字符串。该字符串是弹出窗口(谷歌地图信息窗口)的一些内容。代码如下所示;

var windowcontent = "<strong>Something</strong><br/>" + somethingVar + "<br/><br/>";
windowcontent += "<a href='javascript:goto(''"+var1+'"',''"+var2+'"');'>Goto</a>";

问题是我想包含在函数调用中的链接和变量。无论我尝试什么,我似乎都无法让它工作。我知道这是逃避正确方式的事情,但我似乎还没有找到正确的方法。

带有链接的字符串应该是什么样子的?

第二行应该是

windowcontent += "<a href='javascript:goto(''" + var1 +"'',''"+ var2 + "'');'>Goto</a>";

基本上,您需要转义单引号而不是双引号。

讨论后更新代码,演示

var var1 =  encodeURI("(56.02, 9.27)") ;
var var2 =  encodeURI("(56.02, 9.27)") ;
window.addEventListener("load", function()
{
    document.body.innerHTML += '<a  data-var1="' + var1 + '" data-var2="' + var2 + '" href="#" onclick="goto(this)"> Goto </a>';
    console.log(document.body.innerHTML);
}, false);
function goto (thisObj) 
{ 
   console.log(thisObj);
   var var1 = thisObj.getAttribute( "data-var1" );
   var var2 = thisObj.getAttribute( "data-var2" );
    console.log(var1 + ' - ' + var2); 
}