我现在有两个html网页page A
和page B
当我从page A
移动到page B
时,点击按钮即可使用window.location.href
page A
现在我想要的是每当page B
加载我想要load
只发生page B
事件时
例如,这是page B
<body>
<div id="myList">
<h1>Page B </h1>
</div>
</body>
我想知道两件事
page B
加载时,我想捕获load
的事件page B
div
代码myList
加载时,我想抓住其load
事件我已尝试关注myList
加载,但没有任何事情被解雇,我不知道我应该使用什么特定页面加载,即仅page B
$("#myList").on('load',function(){ });
我正在使用jqyery 1.9
,简而言之,我想模仿jquery mobile的changePage
和pageinit
功能
答案 0 :(得分:0)
我认为我们的解决方案太过“太远了”,我们需要退回去看树林。从最远的距离来看,也许您可能根本不应该有两个页面,而是根据开关加载内容框。
但是现在让我们忽略它。如果您要说的就是从第A页开始“计算”来自页面B的负载,那么我们需要查看引用URL。通过查看document.referrer值可以轻松完成。因此,在第B页:
$(function(){
var hasRun;
if ( ! hasRun && document.referrer === '<http_path_to_doc_a>' ) {
// do something
}
hasRun = true;
});
这应该可以解决问题。请注意,一旦DOM准备好,$()闭包就会执行该函数。正如您所发现的,'load'事件仅适用于某些DOM元素,而不适用于任意节点。我认为jquery会考虑document.load,但我必须将其视为100%肯定。无论如何,即使考虑到这一点,也不需要这样做。
不应该使用hasRun标志,但永远不要太小心。至少在这个便宜的时候:)
如果完全限定的HTTP / S路径过于约束,您可能会对referrer字符串进行一些处理,以使匹配更加宽松。例如:
refer_str = document.referrer;
refer_list = refer_str.split('/');
file_name = refer_list.pop;
file_path = refer_list.join('/');
if ( ! hasRun && file_name === 'pageB.html' ) { ... // as before
祝你好运!
答案 1 :(得分:0)
答案略微取决于您加载页面的确切操作。在页面B中,您可以使用jQuery的document ready
<script>
$(document).ready(funciton () {
// do whatever...
});
</script>
该函数运行时将加载 <div id="myList">
。
如果你使用javascript构建页面,你可以触发特定元素的加载事件,但除非你有充分的理由这样做,否则它并不理想,因为它要慢得多。