簡體   English   中英

包括外部javascript文件

[英]including external javascript file

我正在嘗試將外部JavaScript包含到文檔中。 假設外部js具有以下代碼。

function myFunction() {
  console.log("hello");
}

我通過控制台將其包括在內

var script = document.createElement('script');
script.src = "http://myjs";
document.getElementsByTagName('head')[0].appendChild(script);

但是我仍然得到myFunction()是未定義的錯誤。 該函數是從頁面上包含的php文件中以某種方式調用的。 有趣的是,在文檔中的head標記之后附加我的外部javascript不足以使其在從已加載的php文件進行函數調用之前。

問:根據情況,如何確保在php文件之前包含我的JavaScript?

編輯:這是所有源的層次結構

mysubsite.com
  myfolder
    mypage.html

mysite.com
  myfolder
    main.php
    problem.php

problem.php正在調用函數myFunction()但尚未在任何地方包含它。 因此,我嘗試在外部js文件中定義該函數並將其包含在mypage.html中,但問題.php仍然位於mypage.html中包含的javascript之前

編輯:

我認為真正的問題是我正在處理包含在主文檔中的iframe。 在這種情況下,是否可以通過控制台將我的外部javascript文件包含在主文檔中? 從控制台包含腳本只會影響iframe,而不會影響主文檔。

您正在執行的操作很好,但是隨后必須等待文件加載。 盡管某些舊版本的IE使用onreadystatechanged代替,但大多數瀏覽器都會在腳本元素上引發load事件。 但是由於您使用的是jQuery(來自問題標簽),因此您不必擔心,只需使用$.getScript

$.getScript("http://myjs", function() {
    // The script has been loaded, you can call myFunction now
});

PHP始終包含在JavaScript之前。 PHP由服務器執行,然后再發送給客戶端,而JavaScript由客戶端執行。

為什么不把普通的<script type="text/javascript" src="http:/myjs"></script>放在head

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM