作为 Google Chrome 书签的功能。

109

首先,让我说一下我的问题: 我需要在同一个网页上填写很多次,而我需要填写的内容大部分是相同的,但分散在整个页面中。

我的解决方法: 我知道有一种方法可以创建一些 JavaScript 函数,将其放在 Google 书签后面,这样当你在该页面上时,只需单击该书签,它就会执行某些操作。

我想知道是否有人使用过(或创建)类似于这样的东西。如果您可以自己制作它,该如何开始呢?并且可以使用 jQuery 吗?

如果可能创建这个功能,我还想知道是否可以在单击时显示弹出窗口以询问一些参数,以便我不需要重复填写相同的信息3-4次。

6个回答

168

您可以使用书签小程序来实现此操作。书签小程序是带有以伪协议javascript:开头的URI编码JavaScript代码的书签。当您触发此书签时,浏览器将在当前页面的上下文中运行该代码。因此,您可以转到该页面,然后使用书签小程序填写您的标准信息,就可以了。

例如,这是一个书签小程序,运行时将查找页面上具有id someElement的元素,并且如果找到,则将"some value"分配给其value属性:

javascript:(function(){var d=document,e=d.getElementById("someElement");e.value="some value";})();

4
是的,这正是我在寻找的 :) 既然我知道了名称,我可以查一下它是否允许使用jquery编辑:它允许使用jquery (http://coding.smashingmagazine.com/2010/05/23/make-your-own-bookmarklets-with-jquery/)有没有人知道是否可能制作一个弹出窗口来询问某个参数? - Brentg
1
@Brentg:是的,有时候你只需要知道某个东西叫什么。你可以在书签中使用jQuery,但这通常不是一个好主意,因为你可能会在页面上引入问题。你必须检查是否已经加载了jQuery,如果没有,则加载它,在加载后触发noConflict,以防页面使用Prototype或MooTools或其他依赖于$作为全局符号的东西,此时书签已经变得非常混乱了... :-) - T.J. Crowder
3
当然,对于一个专为特定页面设计的书签脚本,如果你知道该页面已经包含了 jQuery,那么完全可以使用它。你的代码将会像是在页面上的 script 标签中一样运行。 - T.J. Crowder
2
@Brentg: “有没有人知道是否可以制作一个弹出窗口,询问某个特定参数?” 一直都有 prompt。或者当然,可以在页面上添加一个绝对定位的 div,甚至使用 jQuery UI(如果页面已加载)。 - T.J. Crowder
1
是的,我可以尝试一下,但弹出窗口会更加清晰一些。我会尝试解决并在这里发布结果 :) 非常感谢! - Brentg
显示剩余4条评论

25

1
那个程序在我的复杂函数上出了问题,但是寻找一个生成器来为你构建它的想法是一个好主意。 - Noumenon

11

这是一个让您像编辑文档一样编辑网页的示例。

javascript:document.body.contentEditable = 'true'; document.designMode='on'; void 0

1
我曾经见过的最棒的答案 - IHZAQSTORM33
1
它在Chrome移动版上能用吗? - Aral Roca
它也适用于移动设备。查看此指南:https://www.labnol.org/software/google-chrome-bookmarklets/27894/ 或者 https://paul.kinlan.me/use-bookmarklets-on-chrome-on-android/ - Huan Ran Ng

4
javascript : { document.getElementById('PlateNo').value='0815';document.getElementById('AppRef').value='013007';document.getElementById('VehicleReg').value='MX53 YMD'; void(0) }

3

您可以使用提示、警告和确认窗口,我创建了一款游戏。不过它并不是很完美。以下是JavaScript代码:

编辑器需要在开始时加上"javascript:"才能正常工作

javascript: 
var totalClicks = 0;
for (var i = 0; i < 1000000; i++){
    var message1 = prompt("Clicker Game!\nClicks: "+totalClicks,"remove this text to end the game");
    totalClicks++;
    if (message1 !== "remove this text to end the game"){
        i = Math.Infinity;
    }
}
alert("Thanks for playing my game!\nClicks: "+totalClicks)

0

对于 Mozilla 的使用方式如下:

javascript:function myFun(){
var d=document;
var e=d.getElementById("someElement");
var e.value="some value";
}myFun();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接