我正在创建一个greasemonkey脚本,我想要一个前进的链接并修改当前的html,并允许用户点击返回原始页面。
我怎么能这样做?使用jquery + greasemonkey + javascript。主要针对firefox。
-edit- http://jsfiddle.net/似乎就是这么做的。如果你在html部分写随机html,点击运行,更改html并再次点击运行。您将能够单击后退/前进以查看输出更改(但html输入框保持不变)。我正在使用firefox查看此内容。这就是我想要的效果。
看起来魔术是在第91行完成的。这是在一个框架中提交一个表格(可能是结果框架吗?)并导致历史上的移动?
88 run: function(e) {
89 e.stop();
90 Layout.updateFromMirror();
91 document.id(this.options.formId).submit();
92 this.fireEvent('run');
93 },
答案 0 :(得分:2)
我不知道这是否可行,因为浏览器本身负责导航历史记录。只有在您访问新页面时才会添加新的历史记录项。
如果我没有错,您希望用户打开/关闭您对页面所做的更改,而无需启用/禁用greasemonkey并重新加载页面。
我看到的唯一解决方案是自己照顾它。保存对页面所做的任何更改,以便您可以将其还原并向页面添加一些UI,以使用户打开或关闭您的更改。
编辑1:
似乎jsfiddle.net加载了一个新页面来做到这一点。使用firebug你可以看到它没有执行任何AJAX请求来运行代码,它只是加载一个新页面(可能是相同的页面,具有不同的参数,但是它正在加载页面。)
编辑2:
是的,也许是在一个框架中加载页面。正如您在HTML中看到的那样:
<iframe name='result' frameBorder='0'></iframe>
但这不会改变你的情况。如果您希望逻辑位于您的greasemonkey脚本中,则无法加载新页面。否则你应该在某个地方上传一个网页,然后在iframe中加载你要修改的HTML:这绝对不是你想要做的。
答案 1 :(得分:1)
听起来你想使用history manager。您可以跟踪所做的更改,并在用户返回时撤消它们,或者可能调用页面刷新功能。