包括外部javascript文件

包括外部javascript文件,javascript,jquery,Javascript,Jquery,我正在尝试将外部javascript包含到文档中。假设外部js有以下代码 function myFunction() { console.log("hello"); } 我把它包括在控制台中 var script = document.createElement('script'); script.src = "http://myjs"; document.getElementsByTagName('head')[0].appendChild(script); 但我仍然得到myFunct

我正在尝试将外部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中,但problem.php仍然位于mypage.html中包含的javascript之前

编辑:


我认为真正的问题是我正在处理一个包含在主文档中的iframe。在这种情况下,有没有办法将我的外部javascript文件包含在控制台的主文档中?包含来自控制台的脚本只会影响iframe,而不会影响主文档。

您所做的一切都很好,但是您必须等待文件加载。大多数浏览器会在脚本元素上引发
load
事件,尽管IE的一些旧版本使用
onreadystatechanged
。但是,由于您使用的是jQuery(从问题的标记中),因此您不必担心这一点,您可以使用:


您正在做的很好,但是您必须等待文件加载。大多数浏览器会在脚本元素上引发
load
事件,尽管IE的一些旧版本使用
onreadystatechanged
。但是,由于您使用的是jQuery(从问题的标记中),因此您不必担心这一点,您可以使用:


您正在做的很好,但是您必须等待文件加载。大多数浏览器会在脚本元素上引发
load
事件,尽管IE的一些旧版本使用
onreadystatechanged
。但是,由于您使用的是jQuery(从问题的标记中),因此您不必担心这一点,您可以使用:


您正在做的很好,但是您必须等待文件加载。大多数浏览器会在脚本元素上引发
load
事件,尽管IE的一些旧版本使用
onreadystatechanged
。但是,由于您使用的是jQuery(从问题的标记中),因此您不必担心这一点,您可以使用:


PHP总是包含在JavaScript之前。PHP在发送到客户端之前由服务器执行,JavaScript由客户端执行


为什么你不能在你的
头上放一个常规的

PHP总是放在JavaScript之前。PHP在发送到客户端之前由服务器执行,JavaScript由客户端执行


为什么你不能在你的
头上放一个常规的

PHP总是放在JavaScript之前。PHP在发送到客户端之前由服务器执行,JavaScript由客户端执行


为什么你不能在你的
头上放一个常规的

PHP总是放在JavaScript之前。PHP在发送到客户端之前由服务器执行,JavaScript由客户端执行


为什么你不能在你的
头上放一个常规的

写下你用来调用该函数的php代码写下你用来调用该函数的php代码写下你用来调用该函数的php代码写下你用来调用该函数的php代码谢谢你的回答t.J.我已经很不幸地尝试过了。问题是预定义的php文件需要调用myjs中的函数。在我通过getScript包含myjs之后,php文件似乎仍然无法调用该函数。假设myFunction()是在新包含的javascript文件my.js中定义的。我可以从控制台调用myFunction,但从服务器加载的
php
文件仍然无法调用
myFunction()
。我不熟悉php,也不知道如何解决这个问题。我假设整个网站由多个iframe组成,而进行函数调用的php在外部iframe中,而我只在内部iframe中包含myjs脚本。@MaximusS:php正在服务器上运行。JavaScript正在客户端上运行。PHP代码无法调用JavaScript。它所能做的就是输出调用JavaScript的JavaScript代码。听起来像是这样,但它输出的代码在加载脚本文件之前就已经运行了。谢谢你的回答T.J。很不幸,我已经尝试过了。问题是预定义的php文件需要调用myjs中的函数。在我通过getScript包含myjs之后,php文件似乎仍然无法调用该函数。假设myFunction()是在新包含的javascript文件my.js中定义的。我可以从控制台调用myFunction,但从服务器加载的
php
文件仍然无法调用
myFunction()
。我不熟悉php,也不知道如何解决这个问题。我假设整个网站由多个iframe组成,而进行函数调用的php在外部iframe中,而我只在内部iframe中包含myjs脚本。@MaximusS:php正在服务器上运行。JavaScript正在客户端上运行。PHP代码无法调用JavaScript。它所能做的就是输出调用JavaScript的JavaScript代码。听起来像是这样,但它输出的代码在加载脚本文件之前就已经运行了。谢谢你的回答T.J。很不幸,我已经尝试过了。问题是预定义的php文件需要调用myjs中的函数。在我通过getScript包含myjs之后,php文件似乎仍然无法调用函数
$.getScript("http://myjs", function() {
    // The script has been loaded, you can call myFunction now
});