如何使用javascript添加脚本代码?
我想使用javascript添加脚本标记,但无法使其正常工作。下面是代码。我想在bigcommerce购物车页面中添加此代码如何使用javascript添加脚本代码?,javascript,bigcommerce,Javascript,Bigcommerce,我想使用javascript添加脚本标记,但无法使其正常工作。下面是代码。我想在bigcommerce购物车页面中添加此代码 var duration = document.getElementsByName("cartdata"); var cartstr = '<!-- MyBuys Page Parameters – Place in <body> element -->'; cartstr += '<script type="text
var duration = document.getElementsByName("cartdata");
var cartstr = '<!-- MyBuys Page Parameters – Place in <body> element -->';
cartstr += '<script type="text/javascript">';
cartstr += 'mybuys.setPageType("SHOPPING_CART");';
cartstr += 'mybuys.set("email","consumer@example.com"); <!--consumer email can be blank if not known-->';
cartstr += 'mybuys.set("amount","99.34");';
for (var i = 0; i < duration.length; i++) {
str = duration[i].value;
var n = str.split('|');
cartstr += 'mybuys.addCartItemQtySubtotal("'+n[0]+'","'+n[1]+'","'+n[2]+'");'+'<br>';
}
cartstr += '</script>';
cartstr += '<!-- End MyBuys Page Parameters -->';
//alert(cartstr);
var script = document.createElement("script");
script.type = "text/javascript";
script.text = cartstr; // use this for inline script
document.body.appendChild(script);
var duration=document.getElementsByName(“cartdata”);
var cartstr='';
cartstr+='';
cartstr+=“mybuys.setPageType(“购物车”);”;
cartstr+='mybuys.set(“电子邮件”consumer@example.com"); ';
cartstr+=“mybuys.set(“amount”,“99.34”);”;
对于(变量i=0;i”;
}
cartstr+='';
cartstr+='';
//警报(cartstr);
var script=document.createElement(“脚本”);
script.type=“text/javascript”;
script.text=cartstr;//对内联脚本使用此选项
document.body.appendChild(脚本);
我想在页面中添加以下代码:
<!-- MyBuys Page Parameters – Place in <body> element -->
<script type="text/javascript">
mybuys.setPageType("SHOPPING_CART");
mybuys.set("email","consumer@example.com"); <!--consumer email can be blank if not known-->
mybuys.set("amount","99.34");
mybuys.addCartItemQtySubtotal("12345","1","54.34");
mybuys.addCartItemQtySubtotal("56789","3","45.00");
</script>
<!-- End MyBuys Page Parameters -->
mybuys.setPageType(“购物车”);
mybuys.set(“电子邮件”consumer@example.com");
mybuys.set(“金额”、“99.34”);
mybuys.addCartItemQtySubtotal(“12345”、“1”、“54.34”);
mybuys.addCartItemQtySubtotal(“56789”、“3”、“45.00”);
解决方案是只需将代码添加到页面:
<!-- MyBuys Page Parameters – Place in <body> element -->
<script type="text/javascript">
mybuys.setPageType("SHOPPING_CART");
mybuys.set("email","consumer@example.com"); <!--consumer email can be blank if not known-->
mybuys.set("amount","99.34");
mybuys.addCartItemQtySubtotal("12345","1","54.34");
mybuys.addCartItemQtySubtotal("56789","3","45.00");
</script>
<!-- End MyBuys Page Parameters -->
mybuys.setPageType(“购物车”);
mybuys.set(“电子邮件”consumer@example.com");
mybuys.set(“金额”、“99.34”);
mybuys.addCartItemQtySubtotal(“12345”、“1”、“54.34”);
mybuys.addCartItemQtySubtotal(“56789”、“3”、“45.00”);
为什么要使用JavaScript将其放在那里?只需将其添加到页面。您可能需要使用循环稍微调整它:
for (var i = 0; i < duration.length; i++) {
str = duration[i].value;
var n = str.split('|');
mybuys.addCartItemQtySubtotal(n[0],n[1],n[2]);
}
for(变量i=0;i
您只需执行代码,无需构建字符串。最后,您要做的与运行代码是一样的!只要执行它
mybuys.setPageType("SHOPPING_CART");
mybuys.set("email","consumer@example.com");
mybuys.set("amount","99.34");
for (var i = 0; i < duration.length; i++) {
str = duration[i].value;
var n = str.split('|');
mybuys.addCartItemQtySubtotal(n[0],n[1],n[2]);
}
mybuys.setPageType(“购物车”);
mybuys.set(“电子邮件”consumer@example.com");
mybuys.set(“金额”、“99.34”);
对于(变量i=0;i
我不知道你为什么要这么做。但如果你真的想,这里有一种方法可以尝试。$('body').append(“console.log('blah');”)
或
$('body').html($('body').html()+“console.log('blah');”)
用代码替换console.log('blah')
注意,这是假设您使用的是JQuery。
如果没有,您仍然可以使用本机Javascript来执行类似的操作。只需搜索创建一个元素并使用vanila javascript将其添加到另一个元素中,您将在google上获得大量信息
虽然,正如埃帕斯卡雷洛所说,这样做不是一个好主意。这基本上是一种代码味道,您可以改进代码
希望这有帮助。这演示了如何动态添加JavaScript:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
var optionalFunctionLoaded = false;
var commonFunction = function() {
console.log("test button clicked " + (new Date()).toLocaleString());
if (!optionalFunctionLoaded) {
// get optionalSrc e.g. via AJAX, eventually providing actual input values
var optionalSrc = 'function optFun(){console.log("optional function");}';
// if optionalSrc is not empty
var script = document.createElement("script");
script.innerHTML = optionalSrc;
document.head.appendChild(script);
optionalFunctionLoaded = true;
}
if(optionalFunctionLoaded) optFun();
}
</script>
</head>
<body>
<button id ="testButton">test</button>
<script type="text/javascript">
document.getElementById("testButton").onclick = commonFunction;
</script>
</body>
</html>
试验
var optionalFunctionLoaded=false;
var commonFunction=function(){
log(“单击测试按钮”+(new Date()).toLocaleString());
如果(!optionalFunctionLoaded){
//获取optionalSrc,例如通过AJAX,最终提供实际输入值
var optionalSrc='function optFun(){console.log(“可选函数”);}';
//如果optionalSrc不为空
var script=document.createElement(“脚本”);
script.innerHTML=optionalSrc;
document.head.appendChild(脚本);
optionalFunctionLoaded=true;
}
如果(optionalFunctionLoaded)optFun();
}
测试
document.getElementById(“testButton”).onclick=commonFunction;
使用Firefox 24.0/Linux进行测试。你到底为什么要附加一个脚本,只要调用它就行了。没有必要构建字符串!如果JavaScript源是可选的返回,例如AJAX调用,那么这可能是一项明智的任务。@MichaelBesteck那么您使用PHP生成JavaScript来生成更多JavaScript?没有意义。事实上,我需要在bigcommerce中集成此代码,在一个模板中我获取所有值,在第二个模板中我需要将值放入脚本代码中,因此它生成整个脚本代码…JS生成一个字符串并将在几行后执行是没有意义的。我已经按照您所说的那样放置了代码。只是想确认它的第三方脚本,如果我们在其中添加自己的代码,它不会产生任何问题吗?对吗?我使用的是javascript.mybuys.addCartItemQtySubtotal(“12345”、“1”、“54.34”);mybuys.addCartItemQtySubtotal(“56789”、“3”、“45.00”);值动态出现,这就是为什么我需要将其嵌入脚本代码中。