情景 Web应用程序的工作流程是这样的:为什么当请求来自页面外部时,window.load不工作,但否则它会影响?
- 有人点击一个
a href
元素到页面中。 http://example.org/ - 按照链接,然后到达站点内的另一个页面。 http://example.org/page-2/
- 链接URL还包含一个哈希变量。
(此散列变种是我故意的,以便使用来实现下一个点)
- 有一个内容网格,必须表现出想要的部分,这个对象是用一个开箱即用的CMS构建的,所以我最好不要修改它。这也只在用户点击按钮过滤器时才起作用。
- 内容格栅过滤元件没有任何标识,他们只是有一个数据自定义属性被识别。
(此过滤器完全基于事件而不是“GUI可见”的位置,因此我不能呼吁从一URL的特定的过滤器,以前的对象-there是个以前的对象,是 - 工作真的好与URL哈希值,但新的没有。)
就是这样。
的变通办法旨在是这样的:
$(window).load(function() {
var filter = window.location.hash.substr(1);
if(filter == "keywordA") {
$('a[data-filter=".cat-1"]').trigger('click');
}
if(filter == "keywordB"){
$('a[data-filter=".cat-2"]').trigger('click');
}
if(filter == "keywordC"){
$('a[data-filter=".cat-3"]').trigger('click');
}
if(filter == "keywordD"){
$('a[data-filter=".cat-4"]').trigger('click');
}
if(filter == "keywordE"){
$('a[data-filter=".cat-5"]').trigger('click');
}
});
然后,黑暗和未知的力量进入的地方,因为当我在地址栏输入:http://example.org/page-2/#keywordD的DOM效果很好,符合市场预期。内容网格正好显示我想要的内容。
但是,当我尝试内http://example.org/达到相同的链接,但来自a href
元素它只是没有在所有做任何事情。
进一步解释
我用window.load
因为一旦一切都在DOM定居,并$(document).ready()
功能的每一个代码实例后,要执行这样的功能是被迫的,因为该网站已经有很多作品这些。
页面上的哪个位置是脚本?任何控制台错误? –
这是怎么工作的,'filter'没有被声明 –
就在'