Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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 在不同上下文中创建的html字符串中插入JS变量_Javascript_Html - Fatal编程技术网

Javascript 在不同上下文中创建的html字符串中插入JS变量

Javascript 在不同上下文中创建的html字符串中插入JS变量,javascript,html,Javascript,Html,我制作了一个html文档的实例(一个字符串),当用户单击按钮时,它将被打开。但是我也创建了一个变量msg,应该插入其中。我的问题是msg变量没有插入文档中。我猜是因为不同的背景 如何将变量插入htmlString? 现在我收到消息:?tempFile:13未捕获引用错误:未定义msg var msg = "message from outer space"; alert(msg); // Alerts "message from outer space"

我制作了一个html文档的实例(一个字符串),当用户单击按钮时,它将被打开。但是我也创建了一个变量
msg
,应该插入其中。我的问题是
msg
变量没有插入
文档中。我猜是因为不同的背景

如何将变量插入htmlString?
现在我收到消息:
?tempFile:13未捕获引用错误:未定义msg

 var msg = "message from outer space";
 alert(msg); // Alerts "message from outer space"
    
 var htmlString = `<!DOCTYPE html>
    <html>
    <head>
    <title></title>
       <script>
         alert(msg); // This gives error (undefined)
         document.getElementById("para").innerHTML = msg;
       </script>
    </head>
    
    <body>
       <p id="para"></p>
    </body>
    
    </html> `
    
    window.open().document.write(htmlString)
var msg=“来自外层空间的信息”;
警报(msg);//警报“来自外层空间的信息”
var htmlString=`
警报(msg);//这会产生错误(未定义)
document.getElementById(“para”).innerHTML=msg;

` window.open().document.write(htmlString)
您可以使用:
`${msg}`

 var msg = "message from outer space";

 var htmlString = `<!DOCTYPE html>
    <html>
    <head>
    <title></title>       
    </head>
    
    <body>
       <p id="para"></p>

       <script>
         alert(${msg}); // This gives error (undefined)
         document.getElementById("para").innerHTML = '${msg}';
       </script>
    </body>
    
    </html> `

var msg=“来自外层空间的信息”;
var htmlString=`

警报(${msg});//这会产生错误(未定义) document.getElementById(“para”).innerHTML='${msg}'; `
虽然正如吴浩所说,您可以在
标记之间添加msg。最好在html正文的底部添加脚本

 var msg = "message from outer space";

 var htmlString = `<!DOCTYPE html>
    <html>
    <head>
    <title></title>       
    </head>    
    <body>
       <p id="para">${msg}</p>
    </body>
    
    </html> `

var msg=“来自外层空间的信息”;
var htmlString=`

${msg}

`
msg
->
'${msg}'
,请参阅。此外,由于在加载dom之前放置了
script
标记,因此代码无法工作,因此
文档.getElementById(“para”)
未定义。只需将
msg
直接放在标记中:

${msg}

如果
msg
来自不受信任的来源(例如,用户可以处理的任何内容:输入、数据库、url等),则必须对其进行编码,否则容易受到XSS攻击。