Javascript 制作脚本bookmarklet
我正在尝试制作脚本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('
$($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,并且在控制台中工作。它仅在控制台中工作,但我希望它成为一个书签,只需在浏览器中单击一下即可启动