【问题标题】:iframe wikipedia article without the wrapper没有包装器的 iframe 维基百科文章
【发布时间】:2008-09-15 05:28:22
【问题描述】:

我想将维基百科文章嵌入到页面中,但我不希望文章周围的所有包装器(导航等)。我看到它在这里完成:http://www.dayah.com/periodic/。单击一个元素,将显示 iframe 并仅链接到文章(无包装)。那么他们是怎么做到的呢?似乎 JavaScript 处理显示 iframe 并构建 href 但在浏览页面 javascript (http://www.dayah.com/periodic/Script/interactivity.js) 后,我仍然无法弄清楚 url 是如何构建的。谢谢。

【问题讨论】:

    标签: javascript iframe wikipedia


    【解决方案1】:

    元素周期表示例将 wiki 文章的打印机友好版本加载到 iframe 中。 http://en.wikipedia.org/wiki/Potasium?printable=yes

    它在 function click_wiki(e) 中完成(第 534 行,interactivity.js)

    var article = el.childNodes[0].childNodes[n_name].innerHTML; ... window.frames["WikiFrame"].location.replace("http://" + 语言 + ".wikipedia.org/w/index.php?title=" + encodeURIComponent(article) + "&printable=yes");

    【讨论】:

    • 不知道为什么有人把你撞倒,但看起来你是对的。
    • 我也没有。也许实际的代码 sn-p 就足够令人信服了 ;)
    • printable=yes 删除包装,但它也删除所有图像和链接。也许这就是人们把你撞倒的原因。现在我将继续尝试找到一种仅删除包装器的方法。
    • Nvm,我刚刚注意到我检查了一个没有任何图像的页面。这完美地工作。谢谢!
    • 很好的答案;谢谢。如果有人需要正则表达式来将文章 url 更改为这种平面格式,这是一个选择: var str = "en.wikipedia.org/wiki/Potassium"; var patt = new RegExp("^(https:\/\/[a-z]{2,4}\.wikipedia.org\/)wiki\/(.*)"); var res = patt.exec(str); var url=${res[1]}w/index.php?title=${res[2]}&printable=yes;
    【解决方案2】:

    @VolkerK 是对的,他们正在使用可打印的版本。

    当您知道网站在 iframe 中显示页面时,这是一种简单的方法。

    在 Firefox 中,右键单击 iframe 内的任意位置,从上下文菜单中选择“This Frame”,然后选择“View frame info”

    你会得到你需要的信息,包括地址:

    地址:http://en.wikipedia.org/w/index.php?title=Chromium&printable=yes

    【讨论】:

      【解决方案3】:

      jQuery 库允许您指定要通过 Ajax 调用检索的页面的一部分,使用类似于 CSS 的语法:http://docs.jquery.com/Ajax/load

      【讨论】:

        【解决方案4】:

        您可以随时下载该网站并将其废弃。我认为<div id="bodyContent"> 中的所有内容都是文章的内容——没有导航、页眉、页脚等。

        别忘了记分。 ;)

        【讨论】:

        • 我需要它是一个动态链接,以便人们更新文章时它会在我的页面上更新。
        猜你喜欢
        • 2012-01-31
        • 1970-01-01
        • 2018-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-06
        相关资源
        最近更新 更多