zoukankan      html  css  js  c++  java
  • JS控制静态页面之间传递参数获取参数并应用

    在项目中遇到这也一个问题:

    有a.html和b.html。

    1.a页面已经打开,b页面尚未打开,我希望在a页面设置好一些列参数,比如背景色,宽度等参数,传递给b页面,好让b页面在打开就能应用。

    2.a页面已经打开,b页面无论是否打开。在a页面需要获取到b页面的一些元素甚至变量,以便于应用到a页面。

    注意:不涉及跨域问题。

    想了很久,终于想到了解决方案。

    第一个问题,我们可以利用html页面锚点的特性,将参数通过url传递给b页面

    这是a页面代码:

    0 <button>跳转设置</button>
    1 <script>
    2 var btn = document.querySelector('button');
    3 console.log(window);
    4  
    5 btn.addEventListener('click', function(){
    6 window.location = 'ci.html#bgc=#369?wd=500'
    7 })
    8 </script>

    由代码可以知道,点击按钮跳转页面,跳转的url后面多了一系列参数,这个并不会影响跳转的地址,当b页面打开后,可以获取location截取字符串获得变量及变量值,再进行应用。

    这是b页面代码:

    0 <div></div>
    1 <script>
    2 var div = document.querySelector('div');
    3 var bl = window.location.hash.slice(1).split('?');
    4 if(bl.length >= 1){
    5 for(var i = 0; i < bl.length; i += 1){
    6 switch (bl[i].split('=')[0]) {
    7 case 'bgc':
    8 document.body.style.background = bl[i].split('=')[1];
    9 break;
    10 case 'wd':
    11 div.style.width = bl[i].split('=')[1] + 'px';
    12 break;
    13 default:
    14 null;
    15 break;
    16 }
    17 }
    18 }
    19 </script>

    通过截取字符串取得url传递过来的变量应用。成功!

    第二个问题,我想的是通过iframe来达到目的,这只是一个障眼法。

    在a页面动态创建一个iframe,并设置src值为b页面,display为none。再通过iframe的contentDocument属性获取返回的iframe的文档。

    在文档内获取到所需要的元素并应用。

    源码:

    0 <span>11111111111</span>
    1 <script>
    2 var fram = document.createElement('iframe');
    3 fram.src = 'http://www.vip.com/kongzhi/fram2.html';
    4 fram.style.display = 'none';
    5 document.body.appendChild(fram);
    6 fram.onload = function(){
    7 var doc = fram.contentDocument || fram.contentWindow.document;
    8 var p = doc.querySelector('p');
    9 document.body.appendChild(p);
    10 }
    11 </script>

    很轻松搞定,希望对各位看官有所帮助,欢迎你来和我探讨交流学习。

    原文链接-摘自大公爵

  • 相关阅读:
    jQuery的遍历方法
    xampp配置host和httpd可以随意访问任何本机的地址
    JavaScript的this简单实用
    移动端rem布局和百分比栅格化布局
    你知道用AngularJs怎么定义指令吗?
    谈谈Angular关于$watch,$apply 以及 $digest的工作原理
    深入了解Angularjs指令中的ngModel
    如何将angularJs项目与requireJs集成
    requireJS(二)
    requireJS(一)
  • 原文地址:https://www.cnblogs.com/webhb/p/5755656.html
Copyright © 2011-2022 走看看