GVKun编程网logo

JS文件中加载jquery.js(JS文件添加其他JS文件)(js文件里面加载js文件)

22

在本文中,我们将带你了解JS文件中加载jquery.js(JS文件添加其他JS文件)在这篇文章中,我们将为您详细介绍JS文件中加载jquery.js(JS文件添加其他JS文件)的方方面面,并解答js文

在本文中,我们将带你了解JS文件中加载jquery.js(JS文件添加其他JS文件)在这篇文章中,我们将为您详细介绍JS文件中加载jquery.js(JS文件添加其他JS文件)的方方面面,并解答js文件里面加载js文件常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的Angular JS:如何在局部文件中加载js文件、eclipse中加放jQuery.js文件报js语法错误解决办法、javascript – 添加其他js文件会中断jQuery IntelliSense、javascript – 通过JQuery加载和卸载JS文件的最佳方法

本文目录一览:

JS文件中加载jquery.js(JS文件添加其他JS文件)(js文件里面加载js文件)

JS文件中加载jquery.js(JS文件添加其他JS文件)(js文件里面加载js文件)

最近有一个需求:

1.在一个html中只能引入一个JS文件 不能有JS代码和其他JS文件的引入

2.这个JS文件中 还要引入其他的JS文件

3.所有JS功能都写在这个JS文件中 这些代码用到了jquery相关的东东 所以这里第一个需要解决的就是怎么引入jquery.js


在网上搜索了很多方法都不太实用,由于我自己离开WEB多年 最后向朋友询问得到以下代码

1.js

// by firefoxmmx
var script=document.createElement("script");
script.type="text/javascript";
script.src="jquery.js";
document.getElementsByTagName('head')[0].appendChild(script);
setTimeout(function(){
$(document).ready(function(){

	$("#bt").click(function(){
		alert('Hello World');
	});
});
},100);

其中1.HTML代码如下:

<html>
<head>
	<script type="text/javascript" src="1.js"></script>
</head>
<body>
<input type="button" id="bt" value="Click" />
</body>
</html>
如要测试还需要加上jquery.js 这个可自行下载

运行后点击按钮效果如图:



下面再附上网上的一些方法:

1、直接document.write <script language="javascript"> document.write("<script src='test.js'><\/script>"); </script> 2、动态改变已有script的src属性 <script src='' id="s1"></script> <script language="javascript"> s1.src="test.js" </script> 3、动态创建script元素 <script> var oHead = document.getElementsByTagName('HEAD').item(0); var oScript= document.createElement("script"); oScript.type = "text/javascript"; oScript.src="test.js"; oHead.appendChild( oScript); </script> 其实原理就是利用dom动态的引入一个js到文件中来~就能和原有的js通信了~





Angular JS:如何在局部文件中加载js文件

Angular JS:如何在局部文件中加载js文件

对于AngularJS来说,这很陌生,我想我打算做的术语是延迟加载。我看过几个不同的博客,但没有找到纯粹使用AngularJS的完整工作解决方案。

我知道,如果将<script src="js/process1.js"></script>in
放到index.html中,则一切正常,我正在尝试减少在初始负载时减少的js数量。

脚本标签位于局部文件中时,它永远不会被加载,因此永远不会创建P1Ctrl。因此,当前,如果用户进入该应用程序而从未去过process55,则即使从未使用过该用户,该用户仍然在其中拥有用于process55的代码。

在执行process1路由时,是否有一种方法可以加载文件并将process1.js中创建的对象注入main中定义的应用程序中?

index.html:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Large Angular App</title>    <link rel="stylesheet" href="lib/foundation/css/foundation.min.css" /></head><body ng-app="largeApp" ng-controller="LargeAppController">    <div>        <a href="#/home">Home</a> | <a href="#/process1">Process1</a>    </div>    <br/>    <br/>    <br/>    <ng-view>Test</ng-view>    <script type="text/javascript" src="lib/jquery/jquery.min.js"></script>    <script type="text/javascript" src="lib/angular/angular.js"></script>    <script type="text/javascript" src="lib/angular/angular-route.js"></script>    <script type="text/javascript" src="js/main.js"></script></body></html>

js / main.js:

var app = angular.module("largeApp", [''ngRoute'']);var appCtrl = app.controller("LargeAppController", function(){});app.config(function ($routeProvider, $controllerProvider) {    // save references to the providers    app.registerCtrl = $controllerProvider.register,    $routeProvider.when(''/'', {templateUrl: ''partials/home.html''});      //Thinking I need to set up a resolve to fire off a script loader to load js.    $routeProvider.when(''/process1'', {templateUrl: ''partials/process1/process1.html''});    $routeProvider.otherwise({redirectTo: ''/''});});

partials / home.html:

   <div>    Home Page   </div>

partials / process1.html:

<script type="text/javascript" src="js/process1/Process1Controller.js"></script>Process 1 {{process1data}}

js / process1.js:

console.log("I made it here");app.registerCtrl(''Process1Controller'',function($scope){            $scope.process1data = "Hello!";        }]);

答案1

小编典典

要以简单的方式实现控制器的延迟加载,您必须执行以下操作:

保存$controllerProvider.register(将控制器添加到已经自举的AngularJS应用程序中的唯一方法)到应用程序中的变量(
main.js ):

var app = angular.module(''app'',["ngRoute"]);app.config([''$routeProvider'', ''$controllerProvider'',    function($routeProvider, $controllerProvider) {        // remember mentioned function for later use        app.registerCtrl = $controllerProvider.register;        //your routes        $routeProvider.when(''/'', {templateUrl: ''partials/home.html''});        $routeProvider.when(''/process1'', {templateUrl: ''partials/process1.html''});        $routeProvider.otherwise({redirectTo: ''/''});    }]);

process1.html

<script src="js/process1.js"></script><div ng-controller="P1Ctrl">    {{content}}</div>

现在,在 process1.js中, 您可以使用以下代码registerCtrl

app.registerCtrl(''P1Ctrl'', function($scope){   $scope.content = ''...''; });

index.html
可能保持不变。检查是否process1.js正在加载您的代码(只需console.log()在的主体中正确使用process1.js,而不是在P1Ctrl控制器中使用)。如果不是,请在Angular之前包含jQuery:

<script src="lib/jquery/jquery.js"></script><script src="lib/angular/angular.js"></script>

重要说明: 此方法不适用于angular 1.2.0-rc.2和1.2.0-rc.3,因为jQuery的这一小技巧不起作用。

对于更复杂(更漂亮)的解决方案(.js文件以路由定义为依存关系),请查看以下文章:http ://ify.io/lazy-loading-in-
angularjs/-它也可与rc.2和rc.3一起使用。这是简单的实现描述的方法:http
:
//plnkr.co/edit/ukWikO5TVDtQ1l9WlrGD

eclipse中加放jQuery.js文件报js语法错误解决办法

eclipse中加放jQuery.js文件报js语法错误解决办法

三个地方:
1、eclipse设置 :
window->preferences->JavaScript->Validator->Errors/Warnings->Enable Javascript Sematic validation前面的钩子去掉; 
2、.project 文件:
buildSpec 节点下的下面部分删除
<buildCommand> 
    <name>org.eclipse.wst.jsdt.core.javascriptValidator</name> 
    <arguments> 
    </arguments> 
</buildCommand> 
3、删掉原来的js文件重新复制一份, 因为之前的那份已经被项目标记错误了。



javascript – 添加其他js文件会中断jQuery IntelliSense

javascript – 添加其他js文件会中断jQuery IntelliSense

我在VS2008中一直使用jQuery IntelliSense,一直很棒.最近我添加了对jQuery UI的引用,从那时起,jQuery IntelliSense已经消失了.我发现,一旦您在文档中引用另一个.js文件,IntelliSense就会消失.有什么办法避免这个?

解决方法

如果任何引用的文件中存在错误,它将对同一文档中的所有文件引用中断Intellisense. Visual Studio的下一个版本在这方面将会更加强大.我为这个脆弱性直接道歉.我们早期做出了一些设计决策,因为我们阻止了我们使VS9外部引用更加强大.

在此期间,请使用以下解决方法.从Slace给您的链接安装SP1.如果您有一个名为.js的文件,并且在同一位置有一个名为-vsdoc.js的文件,那么JS intellisense将会接收-vsdoc版本.如果该脚本为空,则不会生成错误.识别导致智能感知产生失败的jQuery插件,并在其旁边放置-vsdoc版本.你不会得到UI的智能感知,但是你仍然会得到jquery和其他可以工作的插件.

您在vsdoc版本中放置的任何内容都将显示在智能感知中.如果想要,您可以将想要显示在智能感知中的数据结构的欺骗版本.

javascript – 通过JQuery加载和卸载JS文件的最佳方法

javascript – 通过JQuery加载和卸载JS文件的最佳方法

我一直很沮丧,试图找到通过jQuery加载和卸载一些JS文件的最佳方法,这是我能做的最后一件事:

  $("#button").live("click", function(){
    var pl = $(this).attr('rel');
    $.getScript('' + siteAddress + 'min/?js=fjs'+ pl +'', function() {
       $('#container').load(""+ siteAddress +"load/"+ pl +"/");    
    });
  });

我想要做的是通过jQuery加载一些页面,同时它将包含适当的外部JS文件,用于当前页面已加载,它第一次正常工作,但是当我再次单击该按钮时,最后一个JS仍然加载,因此它会在同一页面内两次触发JS文件内的函数.

我一直尝试使用.append,也可以通过更改< script>属性和创建dynamicaly< script>元素,但仍然,我得到的是相同的结果.

解决方法:

你无法“卸载”JavaScript.一旦加载,它就被加载了.没有撤消.

但是,您可以分离事件处理程序.见:http://api.jquery.com/unbind/

但是live()是unbind()的特例.实时事件处理程序附加到文档而不是元素,因此您必须删除处理程序,如下所示:

$(document).unbind('click');

但是,这可能会删除更多处理程序,而不仅仅是有问题的处理程序,因此您可以执行以下两种操作之一:1)命名处理程序函数或2)创建命名空间.

命名处理函数

function myClickHandler(){
    var pl = $(this).attr('rel');
    $.getScript('' + siteAddress + 'min/?js=fjs'+ pl +'', function() {
       $('#container').load(""+ siteAddress +"load/"+ pl +"/");    
    });
}

$("#button").live("click", myClickHandler);

// And later ...

$(document).unbind('click', myClickHandler);

命名空间

$("#button").live("click.myNamespace", function(){
    var pl = $(this).attr('rel');
    $.getScript('' + siteAddress + 'min/?js=fjs'+ pl +'', function() {
       $('#container').load(""+ siteAddress +"load/"+ pl +"/");    
    });
});

// And later...

$(document).unbind('click.myNamespace');

更新:

正如@RTPMatt在下面提到的那样,die()实际上更合适.上述方法可行,但die()更易于使用.但是,使用die()时,必须将选择器与调用live()时使用的选择器完全匹配,否则结果可能无法预测:

$("#button").live("click", function(){
    var pl = $(this).attr('rel');
    $.getScript('' + siteAddress + 'min/?js=fjs'+ pl +'', function() {
       $('#container').load(""+ siteAddress +"load/"+ pl +"/");    
    });
});

// And later ...

$('#button').die('click');

今天关于JS文件中加载jquery.js(JS文件添加其他JS文件)js文件里面加载js文件的讲解已经结束,谢谢您的阅读,如果想了解更多关于Angular JS:如何在局部文件中加载js文件、eclipse中加放jQuery.js文件报js语法错误解决办法、javascript – 添加其他js文件会中断jQuery IntelliSense、javascript – 通过JQuery加载和卸载JS文件的最佳方法的相关知识,请在本站搜索。

本文标签: