本文目錄一覽:
前端js的三種解碼方式
** 只有 0-9[a-Z] $ – _ . + ! * ‘ ( ) , 以及某些保留字,才能不經過編碼直接用於 URL。
***例如:搜索的中文關鍵字,複製網址之後再粘貼就會發現該URL已經被轉碼。
1) escape 和 unescape
原理:對除ASCII字母、數字、標點符號 @ * _ + – . / 以外的其他字元進行編碼。
編碼:
eg:escape(‘;order= 你好’)
res:”http%3A//”
解碼:
eg:unescape(“http%3A//”)
res:” ;order= 你好”
2) encodeURI 和 decodeURI
原理:返回編碼為有效的統一資源標識符 (URI) 的字元串,不會被編碼的字元:! @ # $ * ( ) = : / ; ? + ‘
encodeURI()是Javascript中真正用來對URL編碼的函數。
編碼:
eg:encodeURI(‘;order= 你好’)
res:” ;order=%E4%BD%A0%E5%A5%BD “
解碼:
eg:decodeURI(” ;order=%E4%BD%A0%E5%A5%BD “)
res:” ;order= 你好”
3) encodeURIComponent 和 decodeURIComponent
原理:對URL的組成部分進行個別編碼,而不用於對整個URL進行編碼
編碼:
eg:encodeURIComponent(‘;order=1’)
res:”http%3A%2F% 2F “
解碼:
eg:decodeURIComponent(“http%3A%2F% 2F “)
res:” ;order=1 “
JS如何清除IE瀏覽器緩存
js中自動清除ie緩存方法 — 常用
對於動態文件,比如 index.asp?id=… 或者 index.aspx?id=… 相信有經驗的程序員都知道怎樣禁止瀏覽器緩存數據了.
但是對於靜態文件(css,jpg,gif等等), 在什麼場合下面我們需要禁止瀏覽器緩存他們,怎麼做?
方法一: Dojo中我們可以用簡單的方法完成:在dojo.xhrGet(包括post)等方法中都包含preventCache屬性,此屬性的含義: 「默認為啟用瀏覽器緩存,否則將通過自動增加不同的參數來確保瀏覽器緩存失效」 我們只要把此屬性賦值為:「true」即可。
方法二: document.write(“
其中 ver=113 的 113就是版本號,一般都是採用 CVS 或其他工具生成的開發版本號。
這樣真正做到了應該緩存的時候緩存靜態文件,當版本有更新的時候從獲取最新的版本,並更新緩存。
對於圖像 來有效利用和更新緩存.
js清除瀏覽器緩存 二
為了減小瀏覽器與伺服器之間網路傳輸壓力,往往對靜態文件,如js,css,修飾的圖片做cache,也就是給這些文件的HTTP響應頭加入 Expires和Cache-Control參數,並指定緩存時間,這樣一定時間內瀏覽器就不會給伺服器發出任何的HTTP請求(除了強制刷新),即使在 這段時間內伺服器的js或css或圖片文件已經更新多次,但瀏覽器的數據依然是原來最能初cache的舊數據,有沒有辦法讓瀏覽器拿到已經修改後的最新數 據呢?
有,方法是用ajax請求伺服器最新文件,並加上請求頭If-Modified-Since和Cache-Control,如下:
[url=] 複製代碼 [/url]代碼如下:
$.ajax({
type: “GET”,
url: “static/cache.js”,
dataType: “text”,
beforeSend :function(xmlHttp){
xmlHttp.setRequestHeader(“If-Modified-Since”,”0″);
xmlHttp.setRequestHeader(“Cache-Control”,”no-cache”);
}
});
這裡用了jquery.
這樣瀏覽器就會把最新的文件替換掉本地舊文件。
當然,這裡還一個問題就是js必須知道伺服器更新了那個js、css、圖片,利用cookie和時間版本應該可以解決.
jquery自從1.2開始就有ifModified和cache參數了,不用自己加header
ifModified Boolean Default: false
Allow the request to be successful only if the response has changed since the last request. This is done by checking the Last-Modified header. Default value is false, ignoring the header.
cache Boolean Default: true
Added in jQuery 1.2, if set to false it will force the pages that you request to not be cached by the browser.
[url=] 複製代碼 [/url]代碼如下:
$.ajax({
type: “GET”,
url: “static/cache.js”,
dataType: “text”,
cache:false,
ifModified :true
});
如何用JS獲取iframe裡面的內容
1、獲取iframe
eg. var ifr_window = window.frames[“frameName”];
2、獲取iframe中的元素
eg1. 將iframe中id為elementId 的元素置為不顯示:
var ifr_window = window.frames[“frameName”];
ifr_window.elementId.style.display = ‘none’;
eg2. 獲取iframe中id為listTable的表格
var oTable = window.frames[“myFrame”].document.all.listTable;
3、隱藏或顯示錶格的某列
js函數:
function setHiddenOrShowCol(oTable, iCol, type) {
for (i = 0; i oTable.rows.length ; i++) {
oTable.rows[i].cells[iCol].style.display = type;
}
}
調用舉例,將id為listTable的表格元素的第4列置為不顯示:
var oTable = window.frames[“myFrame”].document.all.listTable;
setHiddenOrShowCol(oTable, 3, ‘none’);
調用舉例2,將id為listTable的表格元素的第4列置為顯示:
var oTable = document.frames.myFrame.document.all.listTable;
setHiddenOrShowCol(oTable, 3, ‘block’);
聊聊JS控制css樣式的幾種方法
JS控制css樣式的幾種方式
我們在js的工作學習中總會遇到一些不輕易通過style屬性動態載入css樣式的情況(eg:偽類的樣式控制,動畫的樣式控制),這裡總結一下js改變樣式的幾種方法:
1,通過style屬性或者setAttribute()來更改樣式
2,如果只是改變偽類(after,before)的content內容也可以這麼做
3,通過更改類名來更改樣式
4,那麼重點來了:利用document.styleSheets我們獲取到所有樣式表,然後選擇一個樣式表通過 insertRule 來添加樣式;也可以創建新的cssRules,通過addRule()來添加樣式
5,動態載入樣式表
如果需要更改的樣式比較多,還是建議通過動態載入樣式的方式來改變頁面樣式
本文來自PHP中文網,原文地址: 推薦視頻教程:《 js基礎教程 》
原創文章,作者:KVEE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131543.html