⑴ 詳談jQuery.load和jsp的include的區別
1.jqueryObj.load()
load()方法通過ajax獲取服務端數據,並將放回數據放置到jqueryObj對象下。
load(url,data,function(response,status,xhr)
我們也可以只獲取返回數據的部分內容,例如:
$("#a").load("b.html","#c"):獲取b.html中id為c的部分內容填充到id為a的元素下。
注意:load載入的內容中如果包含js,在js被填充到指定元素時就會編譯一次。
2.<%@include file="頁面路徑"%>
這是jsp的指令操作,將指定路徑的內容鑲嵌到該指令所在的位置。這是一中靜態載入的方式。
載入時機:在容器將jsp轉化為servlet文件之前,先和原頁面代碼整合為一體再做解析。(翻譯階段)
注意:因為是將2個文檔合成一個再解析,所以可能存在相同的頭部,這將可能導致解析出錯,所以引入文件的頭部盡量去掉,以沿用原頁面的頭部內容。
3.<jsp:include page="頁面路徑" flush="true">
這是一種行為操作,在請求頁面時將指定路徑的頁面進行翻譯和執行,並將執行結果放在該代碼所在位置。
載入時機:在頁面被請求時才會對引入的頁面和原界面進行分別翻譯和執行。即會翻譯為2個servlet文件。他們是相對獨立的,只有顯示的時候才會將結果放在一起顯示。(請求處理時執行)
注意:因為2個頁面是相對獨立的,所以需要獨立處理,有可能存在2個頁面的編碼集不一致而導致的亂碼。
⑵ Jquery中load函數載入一個jsp頁面,如何在載入的jsp頁面中做一個button按鈕關閉整個jsp頁面
jquery load其它就是ajax獲取數據顯示出來。和你append的html內容一樣。
load的html可以有js代碼,裡面的js也行執行。js放在jsp頁面body裡面。
在js裡面寫處理這個頁的方法就行了。
比如jsp頁:
<body>
<div class="load_page">
內容
<button onclick="load_hide(this)"></button>
</div>
<script>
function load_hide(obj){
$(obj).parents('.load_page').hide();
}
</script>
</body>
也可在主頁面寫通用方法。就需要有個div包起來。
⑶ Jquery 中load方法使用!
load後,那個頁面的JS是不可能會再實現的。你必需在LOAD後,再向剛剛LOAD的頁面增加事件版
下面是我的一段代碼權。。
function phonedoquery(){
$.get("query.asp",{querytxt:$("#phonequerytxt").val()}, function(data,textStatus){
$("#mbody").html(data);//decodeURI()
$("#mbody tbody tr").bind("click",function(){
$("#mbody tbody tr,.highLighttr").removeClass("highLighttr");
$(this).addClass("highLighttr");
});
return false;
});
}
⑷ 利用JQuery動態獲取下拉框的值,在jsp頁面上顯示。
JQuery動態獲取下拉框的值並顯示:
jQuery獲取Select選擇的Text和Value:
語法解釋:
var checkText=$("#select_id").find("option:selected").text(); //獲取Select選擇的Text
顯示在jsp頁面中版寫法權:
$("#txt").attr("value",checkText);//填充內容
⑸ 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");
⑹ jsp中如何使用jquery
//直接引用,jsp中一般寫在head裡面,或者是</html>之前</body>之後,建議後者吧
<scriptsrc="你的jquery的路徑"type="text/javascript"></script>
//然後直接把版jquery代碼寫到<script>之前就可以權了
<scripttype="text/javascript">
//使用$(function(){})相當於onload="某個方法"
$(function(){
//這里寫你要執行的代碼吧
})
</script>
⑺ jquery被LOAD的頁面如何通過JS獲得傳遞過來的參數
可以使用html5的sessionStorage:
1.原頁面載入的時候執行:sessionStorage.setItem("num", "123456");
2.載入的頁面獲取參數:var num=sessionStorage.getItem("num");