• iframe 大数据量传参 本地能调用远程页面 不存在跨域问题 js组件调用原理


    不说废话 先上代码

    index.html (调用页面)

    <SCRIPT type=text/javascript>
    var liArr003 = "";
    	liArr003 += "<li><a href=''><img src='http://domain/images/weibo/201204/1thumbs.jpg' data-large='http://domain/images/weibo/201204/1.jpg' alt='image01' /></a></li>";
    
    	document.write('<iframe name="'+liArr003+'" src="http://localhost/iframe.html" width="100" height="100"></iframe>');
    </SCRIPT>
    

     iframe.html (js组件页面)

    <script>
    alert(window.name);
    </script>
    

     以上就是最后使用的代码

    需求:为什么找这个代码?

    一直以来,在页面里经常会用到幻灯或者是一些其他组件,但是一个前端的js组件往往由3部分组成,css部分、javascript部分,html部分。这样页面组件一多起来就容易出现css冲突或者是js冲突,而且使用起来相对普通编辑来讲就非常不方便了。而iframe的src地址是有长度限制,而且想用js去操控iframe,在本地操作的时候还会产生跨域的问题,页面呈现上不能显示和预览,非常的不方便。之前一直研究页面的get方式,但是这个方法有字符长度限制,如果超过一定字符,比如ie等浏览器就不支持了。然后又在跨域的方面研究了很长时间也是未果。

    目的:在制作页面中把参数写好,js的iframe组件读取这些数据,把数据展现出来,比方说焦点图。

    灵感来源:是看到了iframe自适应高度的一篇文章,里面讲的是跨域,本也想按照其思路,编写一个函数,但是看到核心内容就是window.name,这不就是标签中的name属性吗?所以还写什么js脚本,直接在iframe里面name标签里把数据写上就好了。

    实际上就是 : <iframe name="data" src="http://localhost/iframe.html" width="100" height="100"></iframe>

    然后在iframe页面里面调用window.name 数据就出现了。这里的数据最大应该能达到3M左右,完全够使用了。

    如果是跨域调用的话,可以加一些区别 比如

    <script>
    try{window.parent.document.domain}catch(e){alert("err")}
    </script>

    最后小结:

    明明一个属性解决的问题研究了一天,也是惭愧之极。但是探求真理的思路还是非常珍贵的。总算是又了却了一桩心事。

    ---------------------------------------------
    生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自己行动的嘉奖。
    ↑面的话,越看越不痛快,应该这么说:

    生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!
  • 相关阅读:
    EonerCMS——做一个仿桌面系统的CMS(五)
    给博客园的忠告——做事态度决定用户忠诚度
    EonerCMS——做一个仿桌面系统的CMS(三)
    EonerCMS——做一个仿桌面系统的CMS(七)
    更改windows服务的配置文件(app.config)必须重启服务才能生效吗?
    jQuery:动态改变html表单的目标页(Target)
    iBatis.Net实现返回DataTable和DataSet对象
    更上层楼:动态安装你的windows服务
    MongoDB简单实践:Only CRUD
    发布一个从webform改进而来的asp.net mvc分页工具类
  • 原文地址:https://www.cnblogs.com/pengchenggang/p/2441528.html
Copyright © 2020-2023  润新知