Tag: iframe

如何在iframe的本地范围内执行注入的javascript代码?

我在iframe中加载了一个html文档。 我已经在javascript中为该文档开发了一些弹出菜单代码,我将代码从主文档注入iframe。 但我的代码在iframe中不起作用,因为它使用“ document ”对象,并且令人惊讶地引用主文档而不是iframe文档。 我也玩内容选择,我需要window.getSelection()返回到主文档的选择,我需要window.frames[0].getSelection() 。 我做错了吗? 有没有简单的解决方案来克服这个问题? 更新:(澄清) 正如Bergi指出的那样,我的问题是如何运行正确注入的javascript代码来获取iframe中的本地范围而不是全局范围? 所以我不必在代码中重写document和window … 更新:(我的HTML的骨架) [ … ] 脚本是这样的(使用jquery): $(function(){ $(‘iframe’).load(function(){ var $doc = $(‘iframe’).contents(); var $head = $(‘head’, $doc); $head.append(”); var $body = $(‘body’, $doc); $body.append(‘ \ \ \ ‘); $body.append(‘ \ \ console.log(document.body);// it still displays the global body \ \ ‘); }); }); […]

访问属性’文档’的权限被拒绝

我在那里使用以下脚本,在我的页面上添加iframe形成这个脚本,我想得到iframe html。 问题在iframe中有内部iframe。 Javascript以下函数用于获取ifrmae的内容 document.getElementById(‘f1’).contentWindow.document.body.innerHTML 当我运行时,这将显示以下错误 Permission denied to access property ‘document’ 如何解决权限被拒绝的问题。

iframe中的JQuery UI Dialog

我正在开发一个sp2013应用程序,这意味着它正在使用iframe。 具体来说,它是一个非常大的iframe占据了大部分屏幕。 在很多方面,我正在打开jquery ui对话框窗口。 它们被设置为出现在视口的中间,这很好,除了它显示在iframe的中间,而不是显示在可见屏幕的中间。 有没有办法告诉jquery ui看看window.top的滚动属性,而不是iframe? 编辑:iframe和父级位于同一个域中,因此跨域问题不是问题。

jQuery.error()不适用于iframe。

我正在尝试使用jquery来检测iframe是否无法加载或页面不存在,但下面的代码不起作用: $(‘#frame’).error(function(){ //code here });

如何使用jQuery从父页面引用的文档对象?

我正在尝试从主机页面访问位于中的页面的文档对象。 换句话说,我有一个页面中有一个,我想在该页面(父页面)上使用jQuery来访问该的文档对象。 具体来说,我试图在呈现其内容(onload)后找到 d文档的高度,以便我可以从父页面调整以匹配的高度准确的内容。 如果这很重要,则使用JavaScript在主机页面上创建,并且该页面与父页面位于同一个域中。 我已经使用过这种代码了: $(‘iframe’).contents().find(‘body’).append(‘content’); 使用内容填充,但我不知道获取的文档对象的确切语法。 出于某种原因,我发现有很多方法可以从(大多数使用纯JavaScript)访问父文档对象,但不是相反。 在此先感谢您的帮助!

如何检查iframe是否加载失败? jQuery的?

我现在有这个jquery代码,它工作正常。 当用户单击提交按钮时它会执行什么操作,它会隐藏表单,显示加载程序,然后将数据提交到链接并在iframe中加载输出。 $(document).ready(function() { $(“#xxx_form”).validate({ submitHandler: function() { $(‘#input_form’).hide(‘slow’); $(‘#loader’).show(‘slow’); form.submit(); } }); $(“#xxx_frame”).load(function (){ $(‘#loader’).hide(‘slow’); $(‘#history’).show(‘slow’); $(‘#xxx_frame’).show(‘slow’); }); }); 这工作正常。 我需要的是如何检查iframe加载是否正常。 在我测试期间,他们是iframe超时或者发出无法连接到服务器的错误的时间。 由于ISP失败。 现在我需要检查这种错误,我该怎么做?

iframe如何从iframe内部调整iframe(iframe和页面 – 同一个域)

我尝试从iframe内部听取iframe宽度/高度的变化: $(window).resize(function(){ alert(‘1 on inside iframe’); }); 要么: $(window.parent).find(‘iframe’).resize(function(){ alert(‘2 on inside iframe’); }); 但是当iframe大小改变时没有任何反应。 (我需要一个跨浏览器的解决方案:IE7,Chrome,Firefox,Safari。)

iframe中框架的jQuery / javascript上下文是什么?

让我先说一下……我已经引用了这个问题/答案,它似乎包含了线索,但我仍然错过了整个画面 在另一个框架的上下文中运行JQuery 从本质上讲,索引页面的结构就是这样 location.php然后包含一个框架集(咳咳,不是我的想法……),它有两个像这样设置的框架…… 如果我想操纵索引页面和这些元素之间的对象我将如何处理这个? 我一直认为上下文应该类似于window.parent.frames[0].document …我还缺少什么?

使用history.js在iframe中的后退按钮

我在RoR做一个项目。 该项目位于iFrame中。 在那个iframe有前进和后退按钮。 当我单击向后按钮时,iframe内容应该返回但不是整个浏览器页面。 我正在使用“ histroy.js ”插件。 但我不知道如何使用它。 我的代码是这样的: $(‘#back-btn’).on(‘click’, function () { History.back(); }); $(‘#forward-btn’).on(‘click’, function () { History.forward(); }); $(“a”).click(function () { n = 1; q = n++; var s = $(this).attr(“href”); var o = ‘History.pushState({state:’ + q + ‘,rand:Math.random()}, “State 1″, \”‘ + s + ‘\”);’ $(“#z”).empty().append(‘sds’); $(“#z button”).click(); //this is for […]

jquery fancybox,iframe或ajax,用url加载

使用fancybox(v2),如何创建一个唯一的URL,在加载时显示带有iframe内容的fancybox。 我使用内联内容(例如www.mysite.com/index.html#idgoeshere)非常好用,但是不知道url或js应该包含哪些内容以加载fancybox,并且在其中包含特定的iframe或者ajax.txt页面。 我想要实现的是通过以下链接: www.mysite.com/index.html#https://stackoverflow.com/questions/15281530/jquery-fancybox-iframe-or-ajax-load-with-url/iframe.html 加载索引页面,打开fancybox窗口,将https://stackoverflow.com/questions/15281530/jquery-fancybox-iframe-or-ajax-load-with-url/iframe.html页面加载到fancybox窗口中(或者它也可以是通过ajax加载的.txt文件)。 HTML Iframe 的fancybox $(document).ready(function($) { $.fancybox({ content: $(window.location.hash).html() }); $(‘.fancybox’).fancybox(); }); 感谢您的帮助或指导。 凯尔 更新 谢谢大家的帮助!! 以下是最适合我的工作。 我将我的内容保存到单独的html文件中,然后使用fancybox.iframe调用它们 JS: $(document).ready(function () { $(‘.fancybox’).fancybox({ ‘scrolling’ : ‘no’ }); if (window.location.hash !== “”) { $(window.location.hash).click(); } });