V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Dive into HTML5
http://diveintohtml5.org/
binbinyouliiii
V2EX  ›  HTML

现在有什么好的办法取代 iframe

  •  
  •   binbinyouliiii · 2017-02-13 20:01:50 +08:00 · 12071 次点击
    这是一个创建于 2877 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需要网页中显示文章,文章是用马克飞象生成的 html ,生成的 html 带 css 链接,不用 iframe 的话,会影响到文章之外的元素,现在好像都不怎么提倡实用 iframe ,搜了很长时间都没有好的替代办法

    我的需求就是显示文章但是不影响到文章以外的元素,请问有什么好的办法吗

    第 1 条附言  ·  2017-02-13 22:13:26 +08:00
    试了一下, shadow dom 的确可以把内容添加到指定位置,而且和外界不干扰,在 chrome56 虽然可以加载,但是样式上还是有些问题,其它浏览器直接无法正常加载
    10 条回复    2017-02-17 02:37:31 +08:00
    blanu
        1
    blanu  
       2017-02-13 20:19:29 +08:00 via iPhone   ❤️ 1
    该用时就用,还没被官方标准抛弃就是可以的用法。何况现在解决方案的兼容性都很差
    ianva
        2
    ianva  
       2017-02-13 20:21:55 +08:00   ❤️ 2
    shadow dom
    binbinyouliiii
        3
    binbinyouliiii  
    OP
       2017-02-13 20:42:30 +08:00
    @ianva 看着被支持的浏览器不多啊,文章也很少
    Kilerd
        4
    Kilerd  
       2017-02-13 20:48:59 +08:00
    pjax
    civet
        5
    civet  
       2017-02-13 20:52:18 +08:00 via iPhone
    在线编辑器的预览功能都是 iframe 的。安全点再加个 sandbox 属性吧
    binbinyouliiii
        6
    binbinyouliiii  
    OP
       2017-02-13 21:36:01 +08:00
    @Kilerd pjax 原理上应该也是 ajax 吧,只是添加内容到页面中,应该也会影响外部吧
    ibufu
        7
    ibufu  
       2017-02-14 09:54:22 +08:00
    你的目的就是为了不让 css 污染,那么只要不要让类重名就好了。:)
    binbinyouliiii
        8
    binbinyouliiii  
    OP
       2017-02-14 12:00:00 +08:00 via Android
    @ibufu 并没有这么简单,我已经避免了各种重名,然而像 body 这种标签没办法啊,还有 before 啥的,由于不是前端,改的话无从下手
    ibufu
        9
    ibufu  
       2017-02-14 13:58:57 +08:00
    修改马克飞象生产的 css 源码把,把它的所有 css 规则外面都套一个类名。然后你给你网页中放置文章的容器加上这个类名。
    halden
        10
    halden  
       2017-02-17 02:37:31 +08:00
    那些必须重名的你在 CSS 里面加 !important ,就我所知除了 iframe 之外暂时没有一个能完美解决的方法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   964 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:18 · PVG 05:18 · LAX 13:18 · JFK 16:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.