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

有a.html和b.html。

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

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

注意:不涉及跨域问题。

 

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

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

这是a页面代码:

JS控制静态页面之间传递参数获取参数并应用(window.location)

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

这是b页面代码:


JS控制静态页面之间传递参数获取参数并应用(window.location)

通过截取字符串取得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>

 


相关文章:

  • 2021-10-30
  • 2022-02-20
  • 2021-10-18
  • 2021-10-21
  • 2021-12-17
  • 2021-07-27
猜你喜欢
  • 2022-12-23
  • 2021-08-01
  • 2021-11-08
  • 2021-07-03
  • 2022-12-23
  • 2021-12-20
  • 2021-11-20
相关资源
相似解决方案