Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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添加脚本代码?_Javascript_Bigcommerce - Fatal编程技术网

如何使用javascript添加脚本代码?

如何使用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

我想使用javascript添加脚本标记,但无法使其正常工作。下面是代码。我想在bigcommerce购物车页面中添加此代码

    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
我想在页面中添加以下代码:

<!-- 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”);值动态出现,这就是为什么我需要将其嵌入脚本代码中。