在任何人问之前,这不是关于如何在页面加载后运行脚本或类似内容的常见问题。
基本上,我有this example (fiddle),
$.getScript("http://platform.linkedin.com/in.js").done(function() {
alert('hello');
});
警报在我点击后立即触发,因为它在AJAX呼叫结束时触发。我的目的是在页面上显示LinkedIn公司简介之后才启动警报,以便我可以通过jQuery访问其元素。有人知道怎么做或者甚至可能吗?
提前致谢!
答案 0 :(得分:2)
出现问题是因为加载的是另一个文档(iframe上的另一个DOM树)。脚本加载结束后,您必须检查此新文档是否已准备就绪。
这是基于这两个问题的答案:
答案 1 :(得分:0)
The docs有一些好的tid位。
var myCallBack = function() {
alert('hello');
}
$("#showDiv").click(function(){
$.getScript("http://platform.linkedin.com/in.js?async=true", function() {
IN.init({
onLoad: "myCallBack"
});
});
});
答案 2 :(得分:-1)
https://api.jquery.com/jQuery.getScript/
$.getScript( "http://platform.linkedin.com/in.js" )
.done(function( script, textStatus ) {
console.log( textStatus );
// You can start some function that periodically will check the loaded content.
// Once it is detected stop that event.
})
.fail(function( jqxhr, settings, exception ) {
$( "div.log" ).text( "Triggered ajaxError handler." );
});
https://developer.linkedin.com/
我刚刚为你做了一些专门的调查
这是工作代码。享受!
<a href="#" id="showDiv">Show Agency</a>
<div id="invisibleDiv">
<script type="IN/CompanyProfile" data-id="1035" data-format="inline" data-related="false">
</script>
</div>
<script>
$(function(){
$("#showDiv").click(function(){
$.getScript("http://platform.linkedin.com/in.js").done(function(script, textStatus) {
if (textStatus == "success")
{
console.log( textStatus );
var intervalID = setInterval(function(){
console.log("time + 1000" );
if ($('#uploads').contents().find('iframe').contents().find('.company-logo')) {
console.log("hello!!!");
}
else {
console.log("wahaat???");
};
}, 1000);
}
});
});
});
</script>