与iframe交互 - 获取选定的HTML

时间:2012-08-03 11:32:11

标签: javascript jquery asp.net html5

我真正需要的是像Firebug中的hover-element这样的函数,我们可以在其中获取所选的HTML。

在我们的程序中,我们将加载一个URL,该URL将在iFrame中打开。这里我们想要悬停元素,当用户点击某个元素时,我们需要该特定元素的HTML源代码。

所以:

  • 您可以与iFrame进行互动(获取html),以便获得所选的HTML吗?

2 个答案:

答案 0 :(得分:2)

这是你想要的东西。它将在一个名为sourcecode的div中运行。

但是,如果需要,可以将源代码div放在iframe中。

<div class="sourceCode">
</div>
<script type="text/javascript">
    (function ($) {
        $.fn.outerHTML = function () {
            return $(this).clone().wrap('<div></div>').parent().html();
        }
    })(jQuery);

    $(document).ready(function () {
        $("p,div").click(function () {

            var thisobject = this;
            var sourcecodes = $(thisobject).outerHTML();
            sourcecodes = htmlEscape(sourcecodes);
            $(".sourceCode").html(sourcecodes);

        });

    });

    function htmlEscape(str) {
        return String(str)
        .replace(/&/g, '&amp;')
        .replace(/"/g, '&quot;')
        .replace(/'/g, '&#39;')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;');
    }
</script>

答案 1 :(得分:0)

简短版本:没有。

实际上,您可以在iframe中运行的唯一脚本是iframe中加载的页面中的脚本。

如果你想做这样的事情,有一种方法,但它并不漂亮。 您可以使用ajax请求来解析将在iframe中的页面,然后将其加载到您的页面中。 或者,您可以编写一个重新创建整个iframe页面的服务器端脚本,然后将您的界面添加为叠加层。

这些都不是很好。责怪网络钓鱼者,抓手和垃圾邮件发送者。