Javascript 制作脚本bookmarklet

Javascript 制作脚本bookmarklet,javascript,jquery,Javascript,Jquery,我正在尝试制作脚本bookmarklet,它可以自动将表单填充到网站中,我基于谷歌搜索制作的脚本经过一些修改后仍然有效,但它只能在控制台中工作 $($0 || 'body').find('input, textarea, select').filter(':visible').each(function(){ if( $(this).attr('id')==='email' || $(this).attr('name')==='email' ) return $(this).val('

我正在尝试制作脚本bookmarklet,它可以自动将表单填充到网站中,我基于谷歌搜索制作的脚本经过一些修改后仍然有效,但它只能在控制台中工作

$($0 || 'body').find('input, textarea, select').filter(':visible').each(function(){

if( $(this).attr('id')==='email' || $(this).attr('name')==='email' )
    return $(this).val('some@email.com');

if( $(this).attr('id')==='phone' || $(this).attr('name')==='phone' )
    return $(this).val('PHONE NUMBER');

if( $(this).attr('id')==='juridiction' || $(this).attr('name')==='juridiction' )
    return $(this).val('JURIDICTION');            });
有人能给我解释一下应该怎么做。

您可以使用JavaScript中的encodeURIComponent函数对任何函数进行正确编码。还有一些网站可以做到这一点。要制作bookmarklet,只需在编码脚本前加上javascript:

简单的例子:

你的功能:提醒“你好!”; …编码警报“你好!”%3B …现在有一个URL:javascript:alert'hello!'%3B 请注意,步骤2是通过运行encodeURIComponentalert'hello!'生成的;在浏览器控制台中

将最后一步直接粘贴到浏览器的地址栏中,自己尝试一下。您可能需要重新键入javascript:,当您执行粘贴时,浏览器似乎会将其删除,这可能是一种安全措施

如果对提供的代码段执行完全相同的步骤,则应获得以下信息:

javascript:%24(%240%20%7C%7C%20'body').find('input%2C%20textarea%2C%20select').filter('%3Avisible').each(function()%7B%0A%0Aif(%20%24(this).attr('id')%3D%3D%3D'email'%20%7C%7C%20%24(this).attr('name')%3D%3D%3D'email'%20)%0A%20%20%20%20return%20%24(this).val('some%40email.com')%3B%0A%0Aif(%20%24(this).attr('id')%3D%3D%3D'phone'%20%7C%7C%20%24(this).attr('name')%3D%3D%3D'phone'%20)%0A%20%20%20%20return%20%24(this).val('PHONE%20NUMBER')%3B%0A%0Aif(%20%24(this).attr('id')%3D%3D%3D'juridiction'%20%7C%7C%20%24(this).attr('name')%3D%3D%3D'juridiction'%20)%0A%20%20%20%20return%20%24(this).val('JURIDICTION')%3B%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B
您现在可以创建一个新书签并粘贴到该URL中。瞧!小书签。任何错误都将记录在浏览器控制台中

编辑

额外提示:要在控制台中轻松编码多行函数,请使用自ES6调用以来相对较新的功能。例如:

encodeURIComponent(`
  alert('Line 1!');
  alert('Line 2!');
`);

这在您的典型引用中是不可能的。

如果您试图运行此功能的网站没有jQuery,则无法运行此功能。在您尝试运行控制台后,控制台中是否有错误?该网站确实有jQuery,并且在控制台中工作。它仅在控制台中工作,但我希望它成为一个书签,只需在浏览器中单击一下即可启动