Javascript 如何在脚本标记的src中使用变量?

Javascript 如何在脚本标记的src中使用变量?,javascript,html,Javascript,Html,我想使用变量sym来更改脚本在页面上的加载方式。如果我硬编码src URL,我可以加载脚本,但是我不能使用JavaScript在script标记的src属性中构建URL var sym=“MSFT”; 文件编写(sym); 你不能像那样在HTML标记中使用Javascript变量-你必须完全用Javascript自己创建脚本标记。例如: <script> var sym = "MSFT"; document.addEventListener('DOMContentLoaded',

我想使用变量
sym
来更改脚本在页面上的加载方式。如果我硬编码src URL,我可以加载脚本,但是我不能使用JavaScript在script标记的
src
属性中构建URL


var sym=“MSFT”;
文件编写(sym);

你不能像那样在HTML标记中使用Javascript变量-你必须完全用Javascript自己创建脚本标记。例如:

<script>
var sym = "MSFT";
document.addEventListener('DOMContentLoaded', () => {
  document.head.appendChild(document.createElement('script'))
  .src = `http://markets.financialcontent.com/stocks?Module=snapshot&Ticker=$SPX${sym}&Output=JS`;
});
</script>

var sym=“MSFT”;
document.addEventListener('DOMContentLoaded',()=>{
document.head.appendChild(document.createElement('script'))
.src=`http://markets.financialcontent.com/stocks?Module=snapshot&Ticker=$SPX${sym}&Output=JS`;
});
如何将变量作为URL的一部分传递

轻松点!既然您不介意使用javascript,一个简单的解决方案如下

var scriptElement = document.createElement("script");
scriptElement.src = "http://markets.financialcontent.com/stocks?Module=snapshot&Ticker=" + encodeURIComponent("$SPX+" + sym) + "&Output=JS";
document.head.appendChild(scriptElement);
此代码创建一个脚本元素,其源代码为“+encodeURIComponent”($SPX+“+sym)+”&Output=JS”。然后将其附加到网页的头部

最后的HTML是:

<script>
    var sym = "MSFT";
    document.write("\<script src='" + "http://markets.financialcontent.com/stocks?Module=snapshot&Ticker=" + encodeURIComponent("$SPX+" + sym) + "&Output=JS" + "'\>\</script\>");        
</script>

var sym=“MSFT”;
文件。写“\\”;
此解决方案不起作用的原因如下:

Codepen是一个HTTPS站点,这意味着它不会提供HTTP内容。老实说,我不知道为什么Codepen提供HTTP脚本。如何解决这个问题?其实,只有一个简单的解决方案:

如果您有自己的HTTP服务器,您可以使用它,而不是使用Codepen使用本地HTML文件并打开它

快速操作指南:

1) 打开文本编辑器

2) 键入以下内容

<html>
    <head>
        <script>
            var sym = "MSFT";
            document.write("\<script src='" + "http://markets.financialcontent.com/stocks?Module=snapshot&Ticker=" + encodeURIComponent("$SPX+" + sym) + "&Output=JS" + "'\>\</script\>");
        </script>
    </head>
    <body>
    </body>
</html>

var sym=“MSFT”;
文件。写“\\”;
3) 现在点击“另存为”按钮并将其另存为.html文件

4) 打开它


5) 玩得开心:)

谢谢,这为我指明了正确的方向“URL的一部分”,我会研究它,因为我在其他应用程序中也有类似的问题。我将标签粘贴到了ino codepen.io,我必须更好地研究它,因为它只会导致一个空白;很好地显示了完整的URL,但是codepen.io现在如何显示图形?问题中的第二行脚本仍然没有生成任何图形。我可以看到代码笔吗?这真的很有帮助!同时,我将尝试看看问题出在哪里。这个组件的工作方式正是我想要的。非常感谢你!!!过去我花了很多时间和时间尝试,但都没有成功。实际上,我使用的是本地html文件方法,而不是codepen,我的应用程序更复杂,但我用这种简化的方式说明了这个问题,并且认为codepen很容易被所有人使用。太好了,谢谢你给我指出了正确的方向,并告诉我为什么我粗野的尝试是不好的。(我知道它会更复杂,但不知道搜索什么)。感谢Jason如此清晰地编辑我的问题,现在它正确地描述了问题,幸运的是,Maxim和CertainPerformance优雅地解决了问题。