我想在myjs.js文件中包含jquery.js.我为此写了下面的代码.
var theNewScript=document.createElement("script");
theNewScript.type="text/javascript";
theNewScript.src="http://example.com/jquery.js";
document.getElementsByTagName("head")[0].appendChild(theNewScript);
$.get(myfile.php);
Run Code Online (Sandbox Code Playgroud)
在第5行显示"$ not defined"错误.我想包含jquery.js,然后想在myjs.js文件中调用$ .get()函数.我怎样才能做到这一点?请帮我
我创建了一个使用jQuery的简单页面,所以包括jquery.min.js.
但是我必须在同一页面中插入一个iFrame(不,不幸的是我不能使用其他任何东西),其中包含不同版本的jquery.min.js.
如何强制浏览器只包含这两个版本中的一个(如php中的include_once)?
谢谢!
我正在创建一个使用jQuery的外部窗口小部件,而不是让用户单独包含它我想检查它是否已加载并动态加载它(如果不是).
问题是我需要等到它被加载以执行脚本的其余部分,这需要IE和FF/Chrome处理不同的事件处理程序.
如果我这样做,它在IE8中工作正常:
<div id="test">
<p>This is a test.</p>
</div>
<script>
if (typeof jQuery == 'undefined') {
s = document.createElement("script");
s.src = "//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
if (s.addEventListener) {
s.addEventListener("load", runScript, false);
} else if (s.readyState) {
s.onreadystatechange = runScript;
}
} else {
runScript();
}
function runScript() {
document.getElementsByTagName('head')[0].appendChild(s);
$('#test').css('font-size', '50px');
}
</script>
Run Code Online (Sandbox Code Playgroud)
但这在Chrome中无效.但是,如果我先添加脚本,它可以在Chrome中使用,但不适用于IE:
<div id="test">
<p>This is a test.</p>
</div>
<script>
if (typeof jQuery == 'undefined') {
s = document.createElement("script");
s.src = "//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(s);
if (s.addEventListener) {
s.addEventListener("load", runScript, false);
} …Run Code Online (Sandbox Code Playgroud) 我需要允许来自我们网站的内容嵌入其他用户网站.该conent将是收费的所以我需要保持安全,但其中一个要求是订阅网站只需要将一些javascript放入他们的页面.
看起来保护我们内容的唯一方法是检查托管我们的javascript的页面的URL与订阅站点匹配.有没有其他方法可以做到这一点,因为我们不知道将访问订阅网站的客户端浏览器?
最好的方法是在页面加载时提供填充已知页面元素的javascript包含文件吗?我正在考虑使用jquery,因此include文件将首先在jquery中调用(检查它是否已经加载并使用某种命名空间保护),然后在页面加载时填充给定的元素.
我想尽可能包含一个样式表来设置元素的样式,但我不确定我是否可以将其与javascript一起加载.
这听起来像是一种合理的方法吗?还有什么我应该考虑的吗?
提前致谢,
麦克风
我需要代码使用常规javascript来检测JQuery是否存在,如果没有,从谷歌或其他网站加载JQuery文件
更新两个工作解决方案(只需在此复制和粘贴工作代码):
来自Claudio Redi
window.jQuery || document.write("<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'>\x3C/script>")
Run Code Online (Sandbox Code Playgroud)
来自Rob Darwin
var jQueryScriptOutputted = false;
function initJQuery() {
if (typeof(jQuery) == 'undefined') {
if (! jQueryScriptOutputted) {
jQueryScriptOutputted = true;
document.write("<scr" + "ipt type=\"text/javascript\" src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></scr" + "ipt>");
}
setTimeout("initJQuery()", 50);
}
}
initJQuery();
Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试为我的客户端创建一个插件,我将在他们的HTML中添加以下代码.
<html>
<head>
</head>
<body>
<script type="text/javascript">
var clientID = "123";
(function() {
var test = document.createElement('script'); test.type = 'text/javascript'; test.async = true;
test.src = 'myjavascript.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(test, s);
})();
</script>
<div id="addimage"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在myjavascript.js文件中,我将调用jquery库.
if (typeof jQuery === "undefined") {
var script = document.createElement('script');
script.src = 'http://mysite.com/js/jquery-1.7.1.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
}
if (typeof jQuery === "undefined") {
var script = document.createElement('script');
script.src = 'http://mysite.com/js/fancybox.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
}
// my rest code goes …Run Code Online (Sandbox Code Playgroud) 我处于一种情况,我有多个ASCX文件被添加到aspx页面.其中一些文件包含jQuery库.根据添加的内容,jQuery库可能会被包含多次.
我无法在母版页或其他级别添加jQuery,它必须来自ASCX.造成这种情况的原因超出了这个问题的范围,但如果有人真的需要解释,我可以提供一个.
在ASPX页面中多次添加jQuery是不是很糟糕?有没有办法有条件地将脚本添加到ASCX页面?
我使用 WP 本地函数 wp_enqueue_script() 在 WP 前端和后端加载我的所有脚本,因此它可以处理对同一脚本的重复调用等等。
问题之一是其他程序员不使用此功能并直接从他们的代码加载他们的脚本,这会导致 jQuery 或 jQuery-UI 加载两次,从而导致一堆错误。
另一个问题是不属于我的代码会触发错误并在此之后停止 JavaScript 的执行。
简而言之:
不属于我的代码中出现 Javascript 错误。
由于该错误,我的代码没有执行。
我希望我的代码绕过该错误并仍然执行。
有没有办法处理这些问题?