1

我的想法是,如果我单击第 1 页上的链接,它将加载第 2 页(同一窗口)并激活第 2 页上的脚本。所有这些都通过同一链接完成。

更具体地说,我正在制作的页面将有一个指向第 2 页上的文章的链接,并且在第 2 页上,该文章是隐藏的,但将使用 JavaScript 进行扩展(就像您可能在某些博客中看到的“阅读更多”功能)。第 1 页将有一个链接,该链接直接指向该文章并同时对其进行扩展。

谢谢您的帮助。

编辑1:对不起,我可能没有完全澄清。基本上,第 2 页上会有多篇文章。从第 1 页开始,我打算有不同的链接来激活第 2 页上的不同文章(还有来自不同链接的其他页面上的文章,但我只需要先让至少一个工作)。

4

3 回答 3

1

只需onload在第 2 页设置一个,即可触发您喜欢的任何 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我在 JavaScript 中获取查询字符串值?

于 2013-10-01T07:06:29.177 回答
0

在 page1 中有一个重定向到 Page2 的简单链接,在 page2 中使用Jquery document.ready 函数根据您的需要调用 javacript 函数。

于 2013-10-01T07:07:03.220 回答
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 History API 之前,这是实现单页 web 应用程序的广泛技术(尽管是更详细的版本)。

希望这会有所帮助。

于 2013-10-01T07:47:40.550 回答