我正在开发一个小书签,当您单击它时会建议链接。我想在单击其中一个链接后,当有人点击后退按钮时,其目的是返回到小书签建议的链接列表。
但是,我认为无法通过可以在任何网页上运行的小书签来实现这一点。当您单击建议的链接然后返回时,会显示原始页面,而书签中没有任何 Javascript,通常会在页面顶部显示链接列表。
当然,用户可以再次单击小书签,但如果不需要,那就太好了。有没有办法做到这一点,除了通过我托管的网站重定向(这是一个可怕的解决方案 IMO)?
我正在开发一个小书签,当您单击它时会建议链接。我想在单击其中一个链接后,当有人点击后退按钮时,其目的是返回到小书签建议的链接列表。
但是,我认为无法通过可以在任何网页上运行的小书签来实现这一点。当您单击建议的链接然后返回时,会显示原始页面,而书签中没有任何 Javascript,通常会在页面顶部显示链接列表。
当然,用户可以再次单击小书签,但如果不需要,那就太好了。有没有办法做到这一点,除了通过我托管的网站重定向(这是一个可怕的解决方案 IMO)?
将一些 html 组合成字符串,然后使用window.location
和的组合document.write()
来显示它的小书签怎么样?
var links = "<html><head><title>Suggested links</title></head><body>";
links += "<p><a href='http://example.com/'>Example Suggested Link</a></p>";
links += "</body></html>";
window.location = 'javascript:document.write("' + links + '");' ;
您必须小心引用,以确保显示正确的字符串,但经过快速测试,它似乎尊重后退按钮......
这是一个示例: http: //jsbin.com/ebuko4 - 它在 Firefox 中对我有用,但我没有在其他地方测试过......
代码是:
<html>
<head>
<title>JS Bin Sample bookmarklet</title>
</head>
<body>
<p><a href='javascript:(function(){ var l = "<html><head><title>Does this bookmarklet work?</title></head><body><p>"+ "<a href=\"http://example.com/\">Suggested link: Example.com</a></p>" + "<p><a href=\"http://example.net/\">Suggested link: Example.net</a></p>" + "</bo" + "dy></html>"; window.location = "javascript:document.write(%27" + l + "%27);"; })()'>Sample Bookmarklet - drag me to your toolbar</a></p>
</body>
</html>
不,我不相信有任何方法可以做到这一点 - 据我所知,在页面加载时无法自动触发小书签 javascript - 用户必须单击才能执行。
如果您坚持使用此功能,您将需要开发浏览器扩展。例如,这将允许您向浏览器窗口添加一个新的持久框架,您可以在其中显示建议的链接。Mozilla/Firefox 的开发非常简单,因为它都是基于 javascript 和 XUL(Mozilla 的 GUI 标记语言)的。这里有很多教程和文档:https ://developer.mozilla.org/en/extensions
你也可以为 IE 开发扩展,虽然我没有这方面的经验。这个问题的答案如何为 IE 开发插件?可以帮助您入门。
编辑:我想到了一种可能的解决方法:您的书签可以在当前窗口中创建一个新页面,在容器中包含建议的链接,并在 iframe 中呈现原始页面。单击任何建议的链接将更新 iframe。如果没有实际尝试,不确定这可能会导致什么实际问题(例如,某些网站 - 例如 SO - 不会在 iframe 中呈现,并且某些链接将具有 target="_blank" 并在新窗口中打开),或者这种格式是否对你来说是可取的。
如果您可以在用户点击建议的链接之一时转发数据(例如,将 #info=... 添加到链接的 URL),那么用户可以通过再次激活小书签来恢复链接列表,而无需返回他们的浏览器。
如果小书签在工具栏上,那么这将是一键式操作。但这可能会引发一个新问题:当小书签试图向您显示上一页的结果时,如何获得新的结果!
如果浏览器更改页面,那么您的小书签将失去控制。因此,一种解决方案是不更改页面。
您可以在框架或 iframe 中打开建议的链接。如果您愿意,可以让框架填满窗口,只要有某种方法可以再次查看建议链接列表。
请注意,这不适用于stackoverflow!他们突破框架grrr。
这是一个有点相关的例子:http ://hwi.ath.cx/joeys_bookmarklets.html#splitpreview