在您将其标记为重复之前,我已经查看了here,as well,here too,但我似乎无法找到可行的解决方案。据我所知,由于脚本标记,我无法将脚本传递给innerHTML。但有没有办法将这个特定的API推入div而不将其放在HTML页面上。我有一个输入输入并运行几个$ .get以获取股票信息的按钮,所以我想将其作为结果的一部分包含在内,但是,不允许使用innerHTML,并且我尝试了许多解决方案。上面的链接,无济于事 我可以将下面的脚本放在HTML页面上的div中,但我不想这样做,而且我需要获取用户输入,因此将它放在我的.js中将更容易一起执行所有功能。我包含了小部件的js。
<script type="text/javascript">
new TradingView.widget({
"width": 480,
"height": 400,
"symbol": "NASDAQ:AAPL",
"interval": "D",
"timezone": "Etc/UTC",
"theme": "White",
"style": "1",
"locale": "en",
"toolbar_bg": "#f1f3f6",
"enable_publishing": false,
"hide_top_toolbar": true,
"save_image": false,
"hideideas": true
});
</script>
到目前为止我已经
了var script = document.createElement('script');
script[(script.innerText===undefined?"textContent":"innerText")] = "new TradingView.widget({ 'width': 580, 'height': 400, 'symbol': 'NASDAQ:"+ticker+ "','interval': 'D','timezone': 'Etc/UTC','theme': 'White','style': '1','locale': 'en','toolbar_bg': '#f1f3f6','enable_publishing': false,'hide_top_toolbar': true,'save_image': false,'hideideas': true});";
document.getElementById("stockChart").appendChild(script);
这项工作但不是我想要的方式,但是,这只是执行该脚本而且这个图表是唯一显示在页面上的东西,有没有办法可以强制它在<div>
?使用上面的解决方案,脚本被执行,但没有将小部件放在div中(看起来,我可能是错的。我对此并不精通)。
在这张图片中,当我使用JS文件和其他操作一起运行脚本时,它只是在页面上显示图形。
这是当代码在div中并且在运行任何JS函数之前,我猜它在div中,但是,我需要在框中放置一个输入,以便所有信息都可以显示在一个页面上,如下所示< / p>
我希望图表放在红点中,<div>
是
HTML
<div id="content">
<img src="icon/logo.png">
<h1>Search Shares</h1>
<div id="stockTickGet">
Ticker: <input type="text" id="tickBox" list="options"/>
<button onclick="Ticker()" id="tickerSubmit" class="btn btn-primary">Submit</button>
<datalist id="options"></datalist>
</div>
<div id='showStockTick' class='stockTicker'></div>
<!-- <div id='stockChart'></div> -->
<div id='stockChart'>
</div>
<div id='showStockSearch' class='stockTicker'></div>
<div id='newsresult' class='stockTicker'></div>
<button class="btn btn-primary" data-toggle="modal" data-target="#modal1">Buy Stocks</button>
</div>
从某种意义上说,这就是我想要做的,但不允许/工作
document.getElementById("stockChart").innerHTML = "<script> new TradingView.widget({ 'width': 580, 'height': 400, 'symbol': 'NASDAQ:GOOG','interval': 'D','timezone': 'Etc/UTC','theme': 'White','style': '1','locale': 'en','toolbar_bg': '#f1f3f6','enable_publishing': false,'hide_top_toolbar': true,'save_image': false,'hideideas': true});<"+"/script>";
答案 0 :(得分:2)
虽然脚本可以放在div中,但这里的误解似乎是你可以为脚本生成的任何html选择目标div。
如果没有看到脚本代码或者至少知道脚本是什么,就不可能说脚本是否产生任何html元素,或者即使它完成了,你也无法知道它是如何在当前页面中注入的。
new TradingView.widget(..)
。即使您将此作为脚本元素放置在页面中的html元素上,它也可以跳过一个跳汰机并为我们所知道的所有人烹饪炖菜。
我搜索了Tradingview.widget并找到了这个页面:www.tradingview.com。这似乎是你在说什么。查看页面源代码,您似乎可以在窗口小部件选项中添加container_id
:
new TradingView.widget({
...
container_id : "widget-frame-container";
});
这意味着如果你有一个带有所述id的div:
<div id="widget-frame-container"></div>
然后我假设无论脚本产生什么都会被注入。
很抱歉没有进行测试并给出了半个答案!