用jquery操作iframe

本文涉及的产品
.cn 域名,1个 12个月
简介: 用jquery操作iframe

今天跟同事讨论一个前端页面显示图片时的路径问题,当系统的前后台有不同的域名时,这个问题就会出现!

常用的html编辑器是可以定义图片的显示路径的,但这不是我们要讨论的重点。重点是,如何保证内容中的图片相对路径可以在不同的域名下显示

好吧,这是一个比较讨厌的问题!一开始,我试图在前端显示的时候正则取到内容中的 img ,为其动态添加指定的域名!这明显是个简单除暴的方案~

有没有其他方案可以更优雅一些呢?答案是:必须的!

这里要介绍到一个 html 标签:base,搞前端的童鞋对这个肯定不陌生,有了它,我们就可以给页面上所有相对路径的标签提供根路径了,确实是一个一劳永逸的做法!

不过,只用它,还不行,为什么呢?可能和我们的具体项目有关,我们的前台中显示的文章内容目前是 ajax 获取的,这部分异步获取的数据才是我们要更改路径的目标,除此之外的资源路径不能被影响,有点混乱吧?其实很简单,看下面这种结构:


<body>
    <div>
        这里面使用相对路径的img必须基于指定域名
    </div>
    <div>
        而这里面使用相对路径的img不能被上面的div指定的域名所影响
    </div>
</body>

就是上面这种要求!好吧,只能引入 iframe 了,我们把第一个 div 里的内容丢入一个动态创建的 iframe 中,这样就能单独为其指定 base 了!

ok,既然方案就在眼前,剩下的就是上代码了:


<html>
    <head>
    </head>
    <body>
        <div id="iframe"></div>
        <div>
            <img src="kazaff.png" /> /* 这个相对路径的图片不能被影响 */
        </div>
    
        <script src="jquery-1.11.0.js"></script>
        <script>
            $(function(){
                var iframe = $("frameLabelStart--frameLabelEnd ");    //创建一个iframe
                $("#iframe").append(iframe);    //插入到对应的div
                
                $(iframe[0].contentWindow.document.head).html("<base href='http://v4.vcimg.com/' />");    //给iframe加入base标签,用来定义根路径
                iframe.contents().find("body").append("<img src='global/images/logo.png' />");    //给iframe插入一个相对路径的图片
            });
        </script>
    </body>
</html>
相关文章
|
2月前
|
JavaScript 前端开发
使用jQuery操作DOM元素
使用jQuery操作DOM元素
|
2月前
|
JavaScript 前端开发 索引
JQuery样式操作、click事件以及索引值-选项卡应用示例
JQuery样式操作、click事件以及索引值-选项卡应用示例
33 1
|
2月前
|
JavaScript
jQuery遍历div,判断是否为空,为空时执行某个操作
jQuery遍历div,判断是否为空,为空时执行某个操作
|
9月前
|
存储 JavaScript 前端开发
举例jQuery里的十五种操作
举例jQuery里的十五种操作
61 0
|
9月前
|
JavaScript 前端开发 API
jQuery的attr()方法和JavaScript的属性操作
jQuery的attr()方法和JavaScript的属性操作
56 0
|
2月前
|
缓存 JavaScript
|
2月前
|
前端开发 JavaScript
N..
|
2月前
|
JavaScript 前端开发 容器
jQuery中的DOM操作
jQuery中的DOM操作
N..
23 1
|
9月前
|
JavaScript 前端开发
前端基础 -JQuery之 对属性的操作
前端基础 -JQuery之 对属性的操作
33 0
|
2月前
|
前端开发 JavaScript Java
第四章使用jQuery操作DOM元素
第四章使用jQuery操作DOM元素