我的想法是,如果我点击第1页上的链接,它将加载第2页(同一窗口)并激活第2页上的脚本。所有这些都是通过相同的链接完成的。
更具体地说,我正在制作的页面将链接到第2页上的文章,而第2页上的文章是隐藏的,但将使用JavaScript进行扩展(如您在某些文章中看到的“阅读更多”功能)博客)。第1页将有一个链接直接引导文章并同时扩展它。
感谢您的帮助。
编辑1:对不起,我可能还没有完全澄清。基本上,它会有多篇文章。从第1页开始,我打算使用不同的链接来激活第2页上的不同文章(还有来自不同链接的其他页面上的文章,但我只需要至少先完成一个工作)。
答案 0 :(得分:1)
只需在第2页设置onload
即可触发您喜欢的任何JavaScript。在一个尚不存在的页面上触发js函数很难。
<body onload="expandArticle()">
如果要将参数发送到page2(例如要扩展的文章ID),有几个选项可以执行此操作。例如,在页面url中设置它:
<a href="/articles.html?articleid=7">Read article</a>
然后在文章页面(第2页)的javascript中选择该请求参数。
function expandArticle() {
var url = window.location.href,
articleId = url.split("?")[1].split("=")[1];
console.log("articleId = " + articleId);
// do something with article
}
(这不是提取请求参数最奇特的方式,它取决于参数结构。但是对于这样一个简单的例子它可以工作。使用正则表达式可能是最好的方法,就像这里:How can I get query string values in JavaScript?)
答案 1 :(得分:0)
在page1中有一个重定向到Page2的简单链接,在页面2中使用Jquery document.ready函数根据需要调用javascript函数。
答案 2 :(得分:0)
我建议您使用URL的片段标识符部分来决定在加载时显示哪些内容。
假设您的第二页是example.com/foo
在第一页中,您将链接标记的href设置为:
<a href="/foo#bar">My Link</a>
然后你修改你的第二个,以便你的onDocumentReady监听器看起来像
function onLoad() {
switch (document.location.hash) {
case "bar": showContentForBar(); break;
case ....
}
}
使用url的片段部分可确保服务器不受影响(浏览器不会发送片段部分)。从历史上看,该片段用于锚链接,现在仍可用于实现相同的“状态保存”功能。
请注意,在HTML5历史记录API之前,这是实现单页面webapps的普遍技术(虽然更详细的版本)。
希望这会有所帮助。