JS控制靜態(tài)頁面?zhèn)鬟f參數(shù)并獲取參數(shù)應(yīng)用
在項目中遇到這也一個問題:
有a.html和b.html。
1.a頁面已經(jīng)打開,b頁面尚未打開,我希望在a頁面設(shè)置好一些列參數(shù),比如背景色,寬度等參數(shù),傳遞給b頁面,好讓b頁面在打開就能應(yīng)用。
2.a頁面已經(jīng)打開,b頁面無論是否打開。在a頁面需要獲取到b頁面的一些元素甚至變量,以便于應(yīng)用到a頁面。
注意:不涉及跨域問題。
想了很久,終于想到了解決方案。
第一個問題,我們可以利用html頁面錨點的特性,將參數(shù)通過url傳遞給b頁面
這是a頁面代碼:
<button>跳轉(zhuǎn)設(shè)置</button>
<script>
var btn = document.querySelector('button');
console.log(window);
btn.addEventListener('click', function(){
window.location = 'ci.html#bgc=#369?wd=500'
})
</script>
由代碼可以知道,點擊按鈕跳轉(zhuǎn)頁面,跳轉(zhuǎn)的url后面多了一系列參數(shù),這個并不會影響跳轉(zhuǎn)的地址,當(dāng)b頁面打開后,可以獲取location截取字符串獲得變量及變量值,再進行應(yīng)用。
這是b頁面代碼:
<div></div>
<script>
var div = document.querySelector('div');
var bl = window.location.hash.slice(1).split('?');
if(bl.length >= 1){
for(var i = 0; i < bl.length; i += 1){
switch (bl[i].split('=')[0]) {
case 'bgc':
document.body.style.background = bl[i].split('=')[1];
break;
case 'wd':
div.style.width = bl[i].split('=')[1] + 'px';
break;
default:
null;
break;
}
}
}
</script>
通過截取字符串取得url傳遞過來的變量應(yīng)用。成功!
第二個問題,我想的是通過iframe來達到目的,這只是一個障眼法。
在a頁面動態(tài)創(chuàng)建一個iframe,并設(shè)置src值為b頁面,display為none。再通過iframe的contentDocument屬性獲取返回的iframe的文檔。
在文檔內(nèi)獲取到所需要的元素并應(yīng)用。
源碼:
<span>11111111111</span>
<script>
var fram = document.createElement('iframe');
fram.src = 'http://www.vip.com/kongzhi/fram2.html';
fram.style.display = 'none';
document.body.appendChild(fram);
fram.onload = function(){
var doc = fram.contentDocument || fram.contentWindow.document;
var p = doc.querySelector('p');
document.body.appendChild(p);
}
</script>
以上所述是小編給大家介紹的JS控制靜態(tài)頁面?zhèn)鬟f參數(shù)并獲取參數(shù)應(yīng)用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript Memoization 讓函數(shù)也有記憶功能
函數(shù)可以用對象去記住先前操作的結(jié)果,從而能避免無謂的運算,這種優(yōu)化被稱為記憶(Memoization)。JavaScript 的對象和數(shù)組要實現(xiàn)這種優(yōu)化是非常方便的。2011-10-10
獲取本機IP地址的實例(JavaScript / Node.js)
下面小編就為大家分享一篇使用JavaScript和Node.js獲取本機IP地址的實例,具有很好的參考價值,希望對大家有所幫助2017-11-11
javascript使用isNaN()函數(shù)判斷變量是否為數(shù)字
javascript中判斷變量是否為數(shù)字的方法,這里主要介紹javascript里的 isNaN() 函數(shù),具體使用如下,感興趣的朋友可以參考下2013-09-09
csdn 博客中實現(xiàn)運行代碼功能實現(xiàn)
有時候因為csdn的博客經(jīng)常處理一些字符,導(dǎo)致代碼很多情況下,都不能正常運行,給大家的閱讀帶來了麻煩,下面是腳本之家編輯簡單的整理下。2009-08-08

