Почему мой html загружает только один из двух javascript сценариев? - PullRequest
1 голос
/ 21 апреля 2020

Проблема, с которой я сталкиваюсь, разочаровывает. Я пытался как в моем локальном хосте, так и в коде, чтобы исправить это, но я не могу понять проблему. По сути, у меня есть два Javascript, один запускает новостную ленту, а другой предназначен для запуска тиккера для DOW. Однако они не будут работать одновременно. Любая помощь будет принята с благодарностью.

Примечание: Это все основано на bootstrap CSS.

<head>
<meta charset="utf-8" content="width=device-width initial-scale=1">
<title>Predictive Trades</title>
<link rel="stylesheet" href="{% static 'css/style.css' %}">
<link rel="stylesheet" href="{% static 'css/fixed.css' %}">
<link rel="stylesheet" href="{% static 'css/bootstrap.css' %}">
</head>

<body>
<!--- Start Landing Page Section --->
<div class="landing">
  <div class="home-wrap">
    <div class="home-inner">
    </div>
  </div>
</div>
<div class="caption text-center">
  <h1>Advanced Market Analytics</h1>
  <h3>Enter Company Below to get Started</h3>
  <div class="container h-100">
      <div class="d-flex justify-content-center h-100">
        <div class="searchbar">
          <input class="search_input" type="text" name="" placeholder="Search...">
          <a href="#" class="search_icon"><i class="fas fa-search"></i></a>
        </div>
      </div>
    </div>
</div>
<div intrinio-widget-type="ticker_tape" intrinio-widget-tickers="DOW30">
  <script>
  (function(f,i,n,t,e,c,h){f['IntrinioWidgetsObject']=e;f[e]=f[e]||function(){
       (f[e].q=f[e].q||[]).push(arguments)},f[e].l=1*new Date();c=i.createElement(n),
       h=i.getElementsByTagName(n)[0];c.async=1;c.src=t;h.parentNode.insertBefore(c,h)
       })(window,document,'script','https://widget-api-cdn.intrinio.com/intrinio-widgets.min.js','iw');
       iw('initialize', {userId: '2095ee9f024bec258d15150a90bbe843bdd1271613906cd7b5125229f23d654b'})
  </script>
</div>
<!--- End Landing Page Section --->
</div>
<!--- End Home Section --->

<!--- Start Market Section --->
<div id="market" class="offset">
  <div class="col-12">
    <h1 class="heading">Today's Highlights</h1>
  </div>
  <div class="jumbotron">
    <div class="narrow">
    </div>

  </div>
</div><!--- End narrow --->

</div><!--- End jumbotron --->
     <div id=news class="text-white-50">
     <script>
          window.onload= function() {
            news();
          }
          function news() {
            var xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function() {
              if (this.readyState == 4 && this.status == 200) {
                document.getElementById("news").innerHTML =
                this.responseText;
              }
            };
            xhttp.open("GET", "https://cloud.iexapis.com/stable/stock/spy/news/last/5?token=tpk_6925213461cb489b8c04a632e18c25dd", false);
            xhttp.send();
          }
       </script>
    </div>
</div><!--- End Market Section --->

<script type="text/javascript" src="js/news.js"></script>
<script src="js/jquery-3.4.1.min.js"></script>
<script src='js/bootstrap.js'></script>
<script src="https://use.fontawesome.com/releases/v5.5.0/js/all.js"></script>
<!--- End Script Source Files --->
</body>

1 Ответ

2 голосов
/ 21 апреля 2020

Используйте это, чтобы загрузить ваши новости. Вы использовали window.onload, и я догадался, что ваша другая функция препятствует полной загрузке окна, таким образом, оно запускается, как только dom готов.

     <div id=news class="text-white-50">
       <script>
document.onreadystatechange = function(e)
{
    if (document.readyState === 'complete')
    {
        news();
    }
}; 
       </script>
    </div>

Более подробную информацию вы можете найти здесь: Как выполнить код перед загрузкой window.load и после загрузки DOM?

...