所以,一点上下文:我试图在同一域中对网页进行ajax调用,以便在我在第一页上指定客户端时立即显示电话号码。我确实得到了数据,但似乎没有加载整个页面。
我需要这个:
<div id="1">
<div id="2">
<a id="ineedthis"></a>
</div>
</div>
而是它给了我这个:
<div id="1">
</div>
这是一个我正在编写脚本的网站,因为我无法编辑源代码。这是通过我们的ERP计划管理的,并且在可定制性方面非常有限。
我最好的猜测是目标网页还在加载来自数据库的信息,但我的ajax调用会在此之前返回网页。
这是我的js代码:
function updateClasses(){
var link = $('a[href^="/organisatie-beknopt-prs?BcId="]');
var href = "https://52134.afasinsite.nl" + link.attr("href");
console.log(href);
if(href !== "https://52134.afasinsite.nlundefined"){
$.ajax({
url:href,
type:'GET',
success: function(data){
var tel = $(data).find("#P_C_W_Title_Content");
console.log(tel);
}
});
}
}
setInterval(updateClasses, 1000);
我每秒运行一次以检查第一页上输入字段的更改,我不知道是否有更好的方法吗?
答案 0 :(得分:1)
首先,您可以在检测到更改后尝试运行脚本/功能。
有些事情:
$('input[name="{inputFieldName}"]').on('change',function(){
updateClasses();
});
//You can also use "keyup" instead of "change", depending on the type of action that you are looking for.
对于Ajax,您可以尝试使用Promises。基本上,设置ajax调用,然后设置&#34; .done&#34; ajax调用的情况已经完成并收到了一些结果。 A&#34; .fail&#34;也可用于捕获与代码无关的问题。
function updateClasses(){
var link = $('a[href^="/organisatie-beknopt-prs?BcId="]');
var href = "https://52134.afasinsite.nl" + link.attr("href");
var getPhonePromise = $.ajax({
url: href
});
getPhonePromise.done(function(data) {
var tel = $(data).find("#P_C_W_Title_Content");
console.log(tel);
});
getPhonePromise.fail(function(errRes) { console.log(errRes);});
}