相关疑难解决方法(0)

IFRAME加载完成后的Javascript回调?

我需要在IFRAME加载完成后执行回调.我无法控制IFRAME中的内容,因此我无法从那里触发回调.

这个IFRAME是以编程方式创建的,我需要将其数据作为回调中的变量传递,并销毁iframe.

有任何想法吗?

编辑:

这就是我现在拥有的:

function xssRequest(url, callback)
{
    var iFrameObj = document.createElement('IFRAME');
    iFrameObj.src = url;            
    document.body.appendChild(iFrameObj);   

    $(iFrameObj).load(function() 
    {
        document.body.removeChild(iFrameObj);
        callback(iFrameObj.innerHTML);
    });
}
Run Code Online (Sandbox Code Playgroud)

在iFrame加载之前进行此回调,因此回调没有返回数据.

javascript iframe events dom

145
推荐指数
7
解决办法
26万
查看次数

如何检测iframe是否已加载?

我试图检查用户单击按钮后是否加载了iframe.

我有

$('#MainPopupIframe').load(function(){
    console.log('load the iframe')
    //the console won't show anything even if the iframe is loaded.
})
Run Code Online (Sandbox Code Playgroud)

HTML

<button id='click'>click me</button>

//the iframe is created after the user clicks the button.
<iframe id='MainPopupIframe' src='http://...' />...</iframe>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

顺便说一句,我的iframe是动态创建的.它不会加载初始页面加载.

html javascript iframe jquery

98
推荐指数
1
解决办法
26万
查看次数

如何检测何时已加载iframe

$('#someIframe').load(function(){...})如果在iframe完成加载后附加它,它似乎不会触发.那是对的吗?

我真正喜欢的是拥有一个在加载iframe时或之后总是被调用一次的函数.为了更清楚,这里有两种情况:

  • iframe尚未加载:加载后运行回调函数.
  • iframe已经加载:立即运行回调.

我怎样才能做到这一点?

javascript jquery dom

28
推荐指数
1
解决办法
1万
查看次数

jQuery onload - .load() - 事件不能与动态加载的iframe一起使用

当用户单击按钮时,我的脚本会加载iframe.我想在iframe加载后调用另一个函数,但它不起作用.iframe确实正常加载,但iframe完成加载后永远不会调用.load()事件.iframe包含来自同一网站的内容(无外部内容).奇怪的是,我在我的代码中的其他几个点使用了下面描述的相同技术,它运行得很好.谁能建议我接下来应该检查什么?

这是相关的代码:

$('#myIframe').load(function () {
    alert('iframe loaded');
});

$('#someButton').live('click', function () {
    $('body').append($('<iframe id="myIframe" src="https://www.mywebsite.com" width="100%"></iframe>'));
});
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

13
推荐指数
1
解决办法
3万
查看次数

HTML - 如何知道何时加载所有帧?

我正在使用.NET WebBrowser控件.我怎么知道网页何时满载?

我想知道浏览器什么时候不提取任何数据.(当IE在状态栏中写'完成'时......).

笔记:

  • 对于包含多个框架的网站,DocumentComplete/NavigateComplete事件可能会多次发生.
  • 浏览器就绪状态也没有解决问题.
  • 我已经尝试检查帧集合中的帧数,然后计算我获得DocumentComplete事件的次数,但这也不起作用.
  • this.WebBrowser.IsBusy也不起作用.在文档完成处理程序中检查它时总是"假".

html c# browser mshtml

11
推荐指数
1
解决办法
2万
查看次数

在jQuery中创建动态iframe的更好方法?

所以我有以下代码执行setInterval,直到可以写入iframe.

$( '#testdiv').append( $('<iframe id="testiframe"/>') );
var t = setInterval(function(){
    if(document.getElementById('testiframe') !== 'undefined'){
        clearInterval(t);
        $('#testiframe').contents().find('body').append('asd'); 
    }
}, 15);
Run Code Online (Sandbox Code Playgroud)

基本上发生的是jQuery创建iframe元素并将其加载到DOM中.但是,iframe不能立即使用,因此编码的其他jQuery调用会在字后面发生.使用这段代码,它会进行简单的间隔检查,直到新的iframe可用,然后将'asd'写入其内容.

我花了大约一个小时尝试将方法链接到iframe创建的不同方法,但没有什么真正起作用.这似乎只是时间问题.我试过$('#testiframe').live('load',function(){}); 而这根本不起作用.

那么有人对此有更清晰的建议吗?

iframe jquery

11
推荐指数
1
解决办法
1万
查看次数

文档准备好之前可能的操作

问题

我写了一个脚本,告知用户页面加载缓慢(比如,这是因为互联网连接速度慢).该脚本放在首位,<head></head>非常简单:

var GLOBAL_TIMEOUT = setInterval(function () {      
    alert("The Internet connection is slow. Please continue waiting.");
}, 30000);

//clear that interval somewhere else when document is ready
$(function () {
    clearInterval(GLOBAL_TIMEOUT);
});
Run Code Online (Sandbox Code Playgroud)

在当前示例中,仅提醒信息.是否有任何其他可能的方法来通知用户有关页面缓慢加载的问题(特别是当头部中的某些文件jscss文件非常大且需要一些时间加载时)?我试过操纵DOM(在我看来,在文档准备好之前做的事情是不对的)并document.body导致了null.

额外

设置间隔的解决方案是从这里开始的.任何其他如何做到这一点的想法都非常感谢.

html javascript

11
推荐指数
1
解决办法
337
查看次数

$(document).ready和iframe内容

$(document).ready 
Run Code Online (Sandbox Code Playgroud)

在父页面中等待iframe内容完全加载?

我有一个父页面,其中有一个iFrame.iFrame完全加载后,我需要从父页面调用iFrame中的一个函数.

javascript iframe jquery

10
推荐指数
2
解决办法
4万
查看次数

如何让代码等待html()和append()函数完成?

我将iframe中的body元素的html设置为字符串str,然后我想在下一行访问该内容(这里只是使用警告调用来显示内容)但是html和append函数没有在调用alert语句时完成.

$(function(){
....
$("#notes-tab span.add_draft").bind("click", function(e){
    var str = '';
    $(this).parent().siblings(".tab-content").children(".para").each(function(ind) {
        str += $(this).find('div:first').html();
    });
    var curr = $("#content_rte").contents().find("body").html();
    if (curr == ' ' || curr == '<br>') {
        $("#content_rte").contents().find("body").html(str);
    }
    else {
        $("#content_rte").contents().find("body").append(str);
    }
    alert($("#content_rte").contents().find("body").html());
});
});
Run Code Online (Sandbox Code Playgroud)

当然,html和append函数都不会进行回调.

有人能告诉我一个人在继续之前如何正常完成等待DOM的更改?

jquery

8
推荐指数
2
解决办法
1万
查看次数

Fancybox:在加载iframe内容时显示加载动画

当使用jQuery和fancybox在iframe中显示另一个页面时,我想在iframe中的页面加载时显示加载动画.使用ajax加载内容时可以这样做,但在使用iframe时我想要同样的事情.是否可以从api中获取加载动画,而iframe中的内容正在加载?

这是在fancybox中显示iframe的代码:

var $fancybox = $("#openPopup").fancybox({
    'type': 'iframe',
    'href': "Test.php"
});
Run Code Online (Sandbox Code Playgroud)

iframe jquery loading fancybox

6
推荐指数
4
解决办法
5万
查看次数

如何获得iframe提交表单的回复?

我有一个使用iframe调用过的表单,现在提交该表单时,我想在调用iframe的主站点中捕获响应,并根据它可以启用/禁用主页中的按钮。
请任何人帮我。

javascript forms iframe jquery response

6
推荐指数
2
解决办法
1万
查看次数

使用jQuery将类添加到iframe中的元素

<iframe src="/demo.php" id="source"></iframe>

$('#source').delegate('*', 'hover', function() {
    $(this).addClass('hover');  
});

$('#source').delegate('*', 'mouseout', function() {
    $(this).removeClass('hover');   
});

$('#source').delegate('*', 'click', function() {
    alert($(this).html());
    return false;
});
Run Code Online (Sandbox Code Playgroud)

当我鼠标悬停或点击Iframe内的任何元素时,没有任何反应.Iframe位于同一个域中,我认为只要Iframe src位于同一个域上就应该有效.

关于如何使这项工作的任何想法?

iframe jquery

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

jquery ×9

iframe ×7

javascript ×7

html ×4

dom ×2

browser ×1

c# ×1

events ×1

fancybox ×1

forms ×1

loading ×1

mshtml ×1

response ×1