2011-11-10 32 views
0

所以我只需要一些帮助。我在单独的HTML页面上有一个锚点,所有这些页面都与一个外部JS文件链接。链接上的Javascript触发事件

所以我

<!-- language: none --> 

page1.html 
page2.html 
js.js 

在第1页,我有一个链接到Page2上一个特定的锚链接,我想一个JavaScript函数来开枪第2页当用户打开该链接。我不能使用page1链接上的onclick来通过ID获取第2页上的元素,并且由于xss会停止它而调用js中的函数。

所以TL;博士

page1.html - >链接在这里
page2.html - >目的地就在这里,当用户到达目的地,我想在js文件中的函数开火。但只有当他通过链接到达第2页的特定锚点时。 (例如:p1上的链接去page2.html#destination

这可能吗?我已经尝试将onfocusoneventonchange处理程序附加到页面2上的定位点,但它不起作用。

回答

2

是;使用酒店window.location.hash。像这样(上page2.html):

if(window.location.hash === '#destination') { 
    // Call your function here 
} 
0

如果你想要一些JS在第2页只有当第2页以一种特定的方式抵达运行,那么通常的方式做到这一点是有第1页添加查询参数当转到page2并让page2查找该查询参数时。当page2启动时,它查找查询参数并运行一些额外的JS(如果存在)。

因此,如果page1是page1.html而page2是page2.html,那么您在page1中的特殊链接将链接到page2.html?action=1

page2.html中的javascript将在URl中查找action=1,并且只有在page2.html中运行它时才会运行它,并且它在URL中找到action=1

所有查询参数可通过window.location.search获取。如果你不期待任何其他查询参数,那么你可以使用:

if (window.location.search == "?action=1") { 
    // execute your code here 
} 

如果可能有其他查询参数,那么你可以使用这个:

if (window.location.search.match(/(\?|&)action=1($|&)/)) { 
    // execute your code here 
} 
+0

告诉他如何“得到'行动= 1,因为他可能不知道 – ajax333221