Javascript将字符串动态附加到脚本元素

Javascript将字符串动态附加到脚本元素,javascript,jquery,Javascript,Jquery,如何在html中附加以下变量(作为脚本标记的一部分) 我得到一个无效的令牌错误,代码如下 var script = document.createElement( 'script' ); script.type = 'text/javascript'; script.innerHTML = "var x = '-----BEGIN CERT\nMIIDvTCCAqWgAsdfsdfTAktS\nMR4wHAYDVQQKExVTb2Z

如何在html中附加以下变量(作为脚本标记的一部分)

我得到一个无效的令牌错误,代码如下

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);