我需要在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加载之前进行此回调,因此回调没有返回数据.
我正在尝试遍历页面上的所有元素,所以我想检查此页面上存在的每个元素是否有特殊类.
那么,我怎么说我想检查每个元素?
这在前面已经讨论过了:如何使用Jquery将元素添加到页面时执行操作?
每当div添加到页面时,响应者建议触发自定义事件.但是,我正在撰写Chrome扩展程序,但无法访问页面源代码.我有什么选择?我想在理论上我可以setInterval()用来不断搜索元素的存在并添加我的动作,如果元素在那里.
javascript dom event-handling change-notification mutation-observers
嵌套在我们的Angular应用程序中的是一个名为Page的指令,由一个控制器支持,该控制器包含一个带有ng-bind-html-unsafe属性的div.这被分配给名为'pageContent'的$ scope var.此var从数据库中分配动态生成的HTML.当用户翻转到下一页时,会调用DB,并将pageContent var设置为这个新的HTML,它将通过ng-bind-html-unsafe在屏幕上呈现.这是代码:
页面指令
angular.module('myApp.directives')
.directive('myPage', function ($compile) {
return {
templateUrl: 'page.html',
restrict: 'E',
compile: function compile(element, attrs, transclude) {
// does nothing currently
return {
pre: function preLink(scope, element, attrs, controller) {
// does nothing currently
},
post: function postLink(scope, element, attrs, controller) {
// does nothing currently
}
}
}
};
});
Run Code Online (Sandbox Code Playgroud)
Page指令的模板(上面的templateUrl属性中的"page.html")
<div ng-controller="PageCtrl" >
...
<!-- dynamic page content written into the div below -->
<div ng-bind-html-unsafe="pageContent" >
...
</div>
Run Code Online (Sandbox Code Playgroud)
页面控制器
angular.module('myApp') …Run Code Online (Sandbox Code Playgroud) 正如任何经验丰富的JavaScript开发人员所知,有很多(太多)方法可以做同样的事情.例如,假设您有一个文本字段,如下所示:
<form name="myForm">
<input type="text" name="foo" id="foo" />
Run Code Online (Sandbox Code Playgroud)
在JavaScript中有很多方法可以访问它:
[1] document.forms[0].elements[0];
[2] document.myForm.foo;
[3] document.getElementById('foo');
[4] document.getElementById('myForm').foo;
... and so on ...
Run Code Online (Sandbox Code Playgroud)
方法[1]和[3]在Mozilla Gecko文档中有详细记载,但都不是理想的.[1]过于笼统而无用,[3]同时需要id和名称(假设您将数据发布到服务器端语言).理想情况下,最好只有一个id属性或一个name属性(两者都有点多余,特别是如果id不是任何css所必需的,并且增加了拼写错误的可能性等).
[2]似乎是最直观的,它似乎被广泛使用,但我没有看到它在Gecko文档中引用,我担心向前兼容性和跨浏览器兼容性(当然我想成为尽可能符合标准).
那么这里最好的做法是什么?任何人都可以指出DOM文档或W3C规范中可以解决此问题的内容吗?
注意我对非库解决方案(jQuery/Prototype)特别感兴趣.
我在我们的网站上有一个部分加载非常慢,因为它正在进行一些密集的调用.
任何想法我怎么能得到一个div类似于"加载"的东西,当页面准备自己然后在一切准备就绪时消失?
var a=$('#start > div:last-child');
var b=$('#start > div.live')[0];
alert(a==b)
alert(a==$(b))
Run Code Online (Sandbox Code Playgroud)
这总是错误的.你如何比较jQuery中的两个元素?
谢谢
$('this')[0].nodeName和之间有什么区别$('this')[0].tagName?
dom ×10
javascript ×7
html ×4
jquery ×3
angularjs ×1
compilation ×1
dynamic ×1
events ×1
forms ×1
iframe ×1