将脚本传递给innerHTML

Bao*_*hai 7 html javascript jquery

在您将其标记为重复,我已经看了看这里,还有,这里太,但我似乎无法找到一个有效的解决方案.据我所知,由于脚本标记,我无法将脚本传递给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>
Run Code Online (Sandbox Code Playgroud)

到目前为止我有

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);
Run Code Online (Sandbox Code Playgroud)

然而,这项工作,但不是我想要它,但这只是执行该脚本,这个图表是唯一显示在页面上的东西,有没有办法可以强制它在<div>?使用上面的解决方案,脚本被执行,但没有将小部件放在div中(看起来,我可能是错的.我对此并不精通).

它在做什么 在此图像中,当我使用JS文件与其他操作一起运行脚本时,它只是在页面上显示图形.

当代码在html文件中时 这是当代码在div中并且在运行任何JS函数之前,我猜它在div中,但是,我需要在框中放置一个输入,这样所有信息都可以显示在一个页面上,如下所示

我希望它在哪里 我想在图形上的红点的地方,那里的<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>
Run Code Online (Sandbox Code Playgroud)

从某种意义上说,这就是我想要做的,但不允许/工作

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>";
Run Code Online (Sandbox Code Playgroud)

ipp*_*ppi 2

虽然脚本可以放置在 div 中,但这里的误解似乎是您可以为脚本生成的任何 html 选择目标 div。

如果没有看到脚本代码或至少不知道脚本的作用,就不可能判断脚本是否生成任何 html 元素,或者即使生成了,您也无法知道它如何在当前页面中注入这些元素。

new TradingView.widget(..)。即使您将其作为脚本元素放置在页面中的 html 元素上,据我们所知,它也可能会跳吉格舞或煮炖菜。

至于你的问题的解决方案:

我搜索了 Tradingview.widget 并找到了这个页面:www.tradingview.com。这似乎就是你所说的。查看页面源代码,您似乎可以container_id向小部件选项添加一个:

new TradingView.widget({
     ...
     container_id : "widget-frame-container";
});
Run Code Online (Sandbox Code Playgroud)

这意味着如果你有一个具有所述 id 的 div:

<div id="widget-frame-container"></div>
Run Code Online (Sandbox Code Playgroud)

然后我假设脚本生成的任何内容都将被注入那里。


很抱歉没有测试并给出半途而废的答案!