Javascript将字符串动态附加到脚本元素
如何在html中附加以下变量(作为脚本标记的一部分) 我得到一个无效的令牌错误,代码如下Javascript将字符串动态附加到脚本元素,javascript,jquery,Javascript,Jquery,如何在html中附加以下变量(作为脚本标记的一部分) 我得到一个无效的令牌错误,代码如下 var script = document.createElement( 'script' ); script.type = 'text/javascript'; script.innerHTML = "var x = '-----BEGIN CERT\nMIIDvTCCAqWgAsdfsdfTAktS\nMR4wHAYDVQQKExVTb2Z
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.innerHTML = "var x = '-----BEGIN CERT\nMIIDvTCCAqWgAsdfsdfTAktS\nMR4wHAYDVQQKExVTb2Z0Zm9ydW0gQ29yc45656b24xHjAcBgNVBAsTFVNlY3Vy\naXR5IFJORCBEaXZpc2lvbjEcMBoGA1UEAxMTU29mdGZvcnVtIFB1YmxpYyBDQTE\nODQzMzhaFw0yMj45645gNVBAYTAktSMREwDwYDVQQKDAhq\ncG1vcmdhbjER\n-----END CERT-----\n;';";
$("body").append( script );
你需要逃离马车返回。正如@maxzoom所建议的,您可能希望使用innerText而不是innerHTML
var script=document.createElement('script');
script.type='text/javascript';
script.innerHTML=“var x=”----开始证书\\nMIIDvTCCAqWgAsdfsdfTAktS\\nmr4whaydvqkexvtb2zm9ydw0gq29yc45656b24xhjacbgnvbbastfvnly3vy\\naxr5ifjorcbeaxpc2lvjecmboga1eaxmtu29mdgzvcnvctib1ymxpyybdqte\\nodqzmzmzhaw0ymj45645gvbaytaktsmrewydvqkdahq\\ncg1vcmdhbjr\\n----结束证书\\\\ncg1vcmdhbzpc2lvc2lvc2vc2vc2vcmdhbg2vczvczvczvczv;
$(“正文”).append(脚本)代码>
您应该尝试以下方法:
var x = '-----BEGIN CERT\nMIIDvTCCAqWgAsdfsdfTAktS\nMR4wHAYDVQQKExVTb2Z0Zm9ydW0gQ29yc45656b24xHjAcBgNVBAsTFVNlY3Vy\naXR5IFJORCBEaXZpc2lvbjEcMBoGA1UEAxMTU29mdGZvcnVtIFB1YmxpYyBDQTE\nODQzMzhaFw0yMj45645gNVBAYTAktSMREwDwYDVQQKDAhq\ncG1vcmdhbjER\n-----END CERT-----\n;'
var script = `<script type="text/javascript">${x}</script>`
$("body").append(script);
var x='----开始证书\nMIIDVTCCAQWGASWDFTAKTS\nMR4WHAYDVQKEXVTB2Z0ZM9YDW0GQ29YC45656B24XHJACBGNVBASTFVLY3VY\nAXR5IFJORCBEACZPC2LVJECMBOGA1EAXMTU29MDGZVCNVTIB1YMXPYBDQTE\nDQZZZZHAFW0YMJ45645GNBAYTAKTTSMREWDWYDVQKDAHQ\ncG1vcmdhbjER\n----结束证书------\n
var脚本=`${x}`
$(“正文”).append(脚本);
要处理字符串中的嵌入表达式,如新行字符\n
,可以使用如下符号:
var script=document.createElement('script');
script.type='text/javascript';
var content=“var x=”——————————————————————————————————————————————————————————————————————————————————————————开始证书;
content+=“console.log(x);”;
script.innerHTML=内容;
$(“正文”).append(脚本)代码>
您试图设置的内容不是javascript,而是指定的javascript类型。所以…Thx…但是我看到var x=没有打印。我只是在Chrome、FF和Edge中尝试了“运行代码片段”,而“证书”在这里为我打印/记录。还有其他人吗?我想您可能仍然需要使用“\\n”而不是“\n”来获得正确的结果。请查看代码段输出。我还运行了一个独立测试,没有问题。请查看创建的脚本块,并将其与使用“\\n”而不是“\n”创建的脚本块进行比较。我想这可以归结为天气好坏,人们是否希望结果脚本块被转义。我的猜测是这样的,但如果不是这样的话,那么你的解决方案就是好的。
var x = '-----BEGIN CERT\nMIIDvTCCAqWgAsdfsdfTAktS\nMR4wHAYDVQQKExVTb2Z0Zm9ydW0gQ29yc45656b24xHjAcBgNVBAsTFVNlY3Vy\naXR5IFJORCBEaXZpc2lvbjEcMBoGA1UEAxMTU29mdGZvcnVtIFB1YmxpYyBDQTE\nODQzMzhaFw0yMj45645gNVBAYTAktSMREwDwYDVQQKDAhq\ncG1vcmdhbjER\n-----END CERT-----\n;'
var script = `<script type="text/javascript">${x}</script>`
$("body").append(script);