如何使javascript与使用ajax加载的html一起工作
how do I make javascript work with htm l loaded using ajax
这应该很直接,但我实在无法理解,如果有任何帮助,我将不胜感激。
我有php主页,底部有一些JavaScript。这个脚本所做的就是在加载窗口时调用一个函数,并与导航相呼应,这样做效果很好。
问题是,当导航。已填充,我在主页上的javascript无法与之交互。
//Ajax that loads the nav
window.onload = function(){
function loadContent(where,what) {
if (window.XMLHttpRequest){
var xmlhttp = new XMLHttpRequest();
} else {
var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById(where).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open('GET', what,true);
xmlhttp.send();
};
//the nav function is called directly under it
loadContent('navigator','include/navigation.php');
//after the above is loaded, any javascript written to call an element from the loaded html does not work.
};
navigation.php只包含一些要回显的html,这也非常有效。
echo'
<ul class="nav navbar-nav navbar-right animate animated fadeInDown">
<li class="nav-item"><a href="#">Explore</a></li>
<li class="nav-item"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Select Country<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Worldwide</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">USA</a></li>
<li><a href="#">UK</a></li>
<li><a href="#">Nigeria</a></li>
<li><a href="#">Ghana</a></li>
<li><a href="#">Kenya</a></li>
<li><a href="#">South Africa</a></li>
</ul>
</li>
<li class="nav-item"><a href="#">Calender</a></li>
<li class="nav-item"><a href="#" data-toggle="modal" data-target="#login" id="loginbutton">Log In</a></li>
<li class="nav-item"><a href="#" id="logout">Log Out</a></li>
'
现在我的困境是,上面的内容已经加载。我在window.onload函数中编写的任何JavaScript都不适用于上面的任何元素。我请求任何帮助。使用香草js请不要jquery。感谢
我可以看到很多推荐xmlhttp.readyState == 4 && xmlhttp.status == 200
的帖子。但经过大量的试验,它未能可靠地加载内容。然后使用firebug,我发现在显示内容时总是会出现OK标志,所以我尝试了xhr.statusText === "OK"
,它每次都能可靠地工作。然后转到w3网站,我发现只有在内容加载后才会给出OK标志,就像xmlhttp.readyState == 4 && xmlhttp.status == 200
一样。在MSDN论坛上,我检查了他们的方法,他们也使用了xhr.statusText === "OK"
。我不知道为什么,但这是最适合我的。下面是更多的代码:
var d=document.getElementById("clicks");
var ajaxCall = function() {
var d=document.getElementById("clicks");
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost/JSON/text.txt", true);
xhr.send();
xhr.onreadystatechange = function () {
if(xhr.statusText === "OK") {
d.innerHTML = xhr.response;
} else {
d.innerHTML = "No";
}
}
};
d.addEventListener("click",ajaxCall,false);
$.ajax({
method: "POST", //GET/POST
url: "handler.php" //URL where you will check everything or give your response
data: {varName: $variable }
}).done(function(data){
$("div").append(data); //Puts data in div
});
AJAX请求就是这样工作的!!!
相关文章:
- 在chrome.tabs.onCreated之后加载HTML页面
- 使用:new Image()控制加载html.src=html_URL
- AngularJS加载JSON数据,然后从中解析/加载HTML
- javascript弹出窗口没有正确加载html表单
- 什么更好?使用iframe或jQuery之类的东西在外部网站中加载HTML文件
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 使用JS加载HTML元素
- 当select标记触发onChange事件时,从mysql数据库加载html表
- Android Webview没有'有时不会加载HTML
- 使用ajax在html中加载html文件时出现的问题
- 懒惰加载:如何使用jquery创建懒惰加载html页面
- 使用websockets加载.html和.js
- 加载 HTML 模板以通过浏览器与挖空组件一起使用
- 在jquery对话框中加载html页面
- 从Nodejs应用程序加载HTML表
- 在加载html网页时显示JavaScript表
- 当另一个显示时加载HTML而不修改他
- 一次加载HTML对象并多次使用
- 阻止/推迟加载html元素
- 如何在加载HTML时加载js文件