Javascript 与iframe交互-获取选定的HTML

Javascript 与iframe交互-获取选定的HTML,javascript,jquery,asp.net,html,Javascript,Jquery,Asp.net,Html,我真正需要的是像Firebug中的hover元素这样的函数,我们可以从中获取所选的HTML 在我们的程序中,我们将加载一个URL,该URL将在iFrame中打开。在这里,我们希望悬停元素,当用户单击某个元素时,我们需要该特定元素的HTML源代码 因此: 您能否与iFrame交互(获得悬停的html),从而获得所选的html 简短版本:否 实际上,您可以在iframe中运行的唯一脚本是在iframe中加载的页面中的那些脚本 如果你想做这样的事情,有一种方法,但它并不漂亮。 您可以使用ajax请求

我真正需要的是像Firebug中的hover元素这样的函数,我们可以从中获取所选的HTML

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

因此:

  • 您能否与iFrame交互(获得悬停的html),从而获得所选的html
    • 简短版本:否

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

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


      这些都不漂亮。责怪网络钓鱼者、刮刮者和垃圾邮件发送者。

      这里有一些你想要的东西。它将在名为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>
      
      
      (函数($){
      $.fn.outerHTML=函数(){
      返回$(this.clone().wrap(“”).parent().html();
      }
      })(jQuery);
      $(文档).ready(函数(){
      $(“p,div”)。单击(函数(){
      var thisobject=this;
      var sourcecodes=$(thisobject.outerHTML();
      sourcecodes=htmlEscape(源代码);
      $(“.sourceCode”).html(源代码);
      });
      });
      功能htmlEscape(str){
      返回字符串(str)
      .更换(/&/g,“&;”)
      .替换(/“/g,”))
      .替换(/'/g'';'))
      .替换(//g',);
      }
      
      如果内容加载是跨域的,则无法与iFrame交互。请确保您有jQuery,因为没有jQuery,此代码将无法运行。目前,我已经包含了p和div。您可以包含整个文档。我检查了文档,当您放入$(文档)时它不起作用。单击(函数),但当您单击特定的div或p时它会起作用。源代码将显示在名为sourcecode的div中。如果这解决了您的问题,请向上投票。