⑴ js load方法!
調用load方法的完整格式是:load( url, [data], [callback] ),其中
url:是指要導入文件的地址。
data:可選參數;因為Load不僅僅可以導入靜態的html文件,還可以導入動態腳本,例如PHP文件,所以要導入的是動態文件時,我們可以把要傳遞的參數放在這里。
callback:可選參數;是指調用load方法並得到伺服器響應後,再執行的另外一個函數。
一:如何使用data
1.載入一個php文件,該php文件不含傳遞參數
$("#myID").load("test.php");
//在id為#myID的元素里導入test.php運行後的結果
2. 載入一個php文件,該php文件含有一個傳遞參數
$("#myID").load("test.php",{"name" : "Adam"});
//導入的php文件含有一個傳遞參數,類似於:test.php?name=Adam
3. 載入一個php文件,該php文件含有多個傳遞參數。註:參數間用逗號分隔
$("#myID").load("test.php",{"name" : "Adam" ,"site":"61dh.com"});
//導入的php文件含有一個傳遞參數,類似於:test.php?name=Adam&site=61dh.com
4. 載入一個php文件,該php文件以數組作為傳遞參數
$("#myID").load("test.php",{'myinfo[]', ["Adam", "61dh.com"]});
//導入的php文件含有一個數組傳遞參數。
注意:使用load,這些參數是以POST的方式傳遞的,因此在test.php里,不能用GET來獲取參數。
二:如何使用callback
比如我們要在load方法得到伺服器響應後,慢慢地顯示載入的內容,就可以使用callback函數。代碼如下:
. 代碼如下:
$("#go").click(function(){
$("#myID").load("welcome.php", {"lname" : "Cai", "fname" : "Adam", function(){
$("#myID").fadeIn('slow');}
);
});
防止jquery使用緩存的方法:
緩存這東西,在一定程度上加快了頁面的裝載,但是也常常給我們帶來麻煩。我在上篇文章里簡單介紹了jQuery中Load方法的使用。在實際運用中,我們可能會碰到瀏覽器緩存的問題。比如我就在IE7里碰到這個問題。
jQuery Load樣本代碼:
. 代碼如下:
$(document).ready(function(){
$("#labels").load("/blog/categories/labels.html");
//在頁面裝載時,在ID為#labels的DOM元素里插入labels.html的內容。
});
當我更新了labels.html以後,在IE7里load方法仍舊在使用舊的labels.html,就算我按刷新鍵也不管用。好在jQuery提供一個防止ajax使用緩存的方法,把下面的語句加在head的javascript文件里,就可以解決問題。
. 代碼如下:
$.ajaxSetup ({
cache: false //關閉AJAX相應的緩存
});
此外我再介紹幾種方法解決緩存的方法。注意:我沒有在jQuery load的問題上測試過,這些方法僅供參考!
1.更改文件名,比如把labels.html改成lables_new.html,但是這是沒有辦法的辦法,一般沒有人這么做。
2.在labels.html後加上特定時間,比如lables.html?20081116。在實際工作中,在我更新css/javascript文件後,我都是用這種辦法來防止文件被緩存。
3.在labels.html文件的頂部加入以下聲明:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
4.load函數不僅可以調用HTML,也可以調用script,比如labels.php,可以在php文件里使用header函數:
. 代碼如下:
<?php
header("Cache-Control: no-cache, must-revalidate");
?>
load的特殊用法:
在load的url里加上空格後面就可以跟選擇器了。
舉例:我需要load test.html的內容,並只要取id為a的內容。
$("body").load("test.html #a");
⑵ js里load和onload怎麼區分
onload是js的原生的事件,而load則是這個程序中名為SpriteSheet的自定義類中自定義的一個方法(或者說是自定義的事件),兩者之間沒有必然的聯系,如果程序編寫者原意,他也可以把load改成其他名字。onload則是不能改的,它是js的內部事件名。
⑶ 如何在js文件中動態載入另一個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通信了~
⑷ js問題 有兩個方法,怎麼實現其中一個方法調用另一個方法中的變數
方法不少
1 將a,b設為全局變數
就是放在方法外面
樓上寫了
2 讓a()有返回值
這樣你可以通過dd.a,dd.b來調版用a方法里的變數,
但是你不能權修改a b兩個變數
<html>
<body>
<scripttype="text/javascript">
functiona(){
vara=12;
varb=23;
return{a,b}
}
functionm(){
vardd=a();
console.log(dd.a);
console.log(dd.b)
}
m()
</script>
</body>
</html>
另外建議方法名不要起class 這樣容易引起混淆的名稱
⑸ 怎麼重新載入js文件
載入js文件三種方法,如下:
1、重新載入js文件:
function loadJs(file) {
var head = $("head").remove("script[role='reload']");
$("<scri" + "pt>" + "</scr" + "ipt>").attr({ role: 'reload', src: file, type: 'text/javascript' }).appendTo(head);
}
2、給js定個id,重新載入:
function reloadAbleJSFn(id,newJS)
{
var oldjs = null;
var t = null;
var oldjs = document.getElementById(id);
if(oldjs) oldjs.parentNode.removeChild(oldjs);
var scriptObj = document.createElement("script");
scriptObj.src = newJS;
scriptObj.type = "text/javascript";
scriptObj.id = id;
document.getElementsByTagName("head")[0].appendChild(scriptObj);
}
3、jquery的就直接使用getScript就可以:
<script type="text/javascript" src="../jquery.js"></script>
<script type="text/javascript">
$(function()
{
$('#loadButton').click(function(){
$.getScript('new.js',function(){
newFun('"Checking new script"');//這個函數是在new.js裡面的,當點擊click後運行這個函數
});
});
});
</script>
</head>
<body>
<button type="button" id="loadButton">Load</button>
⑹ 如何在頁面中非同步載入css/js,寫出對應的loadcss,loadjs function
jquery動態載入css,js文件方法
方法1:
代碼如下
復制代碼代碼如下:
$.getscript("test.js");
方法2:
代碼如下
復制代碼代碼如下:
function loadjs(file){
var head = $('head').remove('#loadscript');
$("<scri"+"pt>"+"</scr"+"ipt>").attr({src:file,type:'text/javascript',id:'load'}).appendto(head);
}
方法3:
代碼如下
復制代碼代碼如下:
$("<scri"+"pt>"+"</scr"+"ipt>").attr({src:file,type:'text/javascript',id:'load'}).appendto($('head').remove('#loadscript'));
下面附一些js動態載入js,css文件的方法。
以下代碼是摘自news.qq.com頁面里的代碼的,本人未進行測試,程序看著應該沒有問題的,可以做為參考的,主要用來在網頁底部位置,實現動態載入js文件到網頁<head>標簽的後面,通過DOM來實現的,代碼如下:
代碼如下
復制代碼代碼如下:
<script>
var SCRIPT_TIMEOUT = 20000;
var QVPL_PATH = "/QVPL1.0.0.js";
function loadHelper (jsurl) {
var oScriptEl, oTimeoutHDL, oHead;
oScriptEl = document.createElement("script");
oScriptEl.type = "text/javascript";
oScriptEl.language = "javascript";
oScriptEl.src = jsurl;
oScriptEl.onreadystatechange = doCallback;
oScriptEl.onload = function()
{
this.readyState = "complete";
doCallback();
if(typeof(lianbo) == "object"){
lianbo.init(window.QVPL);
}
};
oTimeoutHDL = window.setTimeout(doError,SCRIPT_TIMEOUT);
document.getElementsByTagName("head")[0].appendChild(oScriptEl);
function doCallback()
{
if (oScriptEl.readyState == "complete" || oScriptEl.readyState == "loaded")
{
oScriptEl.onload = oScriptEl.onreadystatechange = new Function();
window.clearTimeout(oTimeoutHDL);
}
};
function doError()
{
oScriptEl.parentNode.removeChild(oScriptEl);
};
}
loadHelper(QVPL_PATH);
</script>