我正在尝试制作可自动将表单填充到网站中的脚本小书签,经过一些修改后,我基于google搜索创建的脚本有效,但仅在控制台中有效。
$($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'); });
有人可以向我解释应该做吗
答案 0 :(得分:1)
您可以在JavaScript中使用encodeURIComponent
函数对任何函数进行正确编码。也有网站可以做到这一点。要制作书签,您只需将javascript:
放在编码脚本的前面即可。
简单的例子:
alert('hello!');
alert('hello!')%3B
javascript:alert('hello!')%3B
(请注意,步骤2是通过在浏览器控制台中运行encodeURIComponent("alert('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中。瞧!一个书签。任何错误都将记录在您的浏览器控制台中。
编辑
红利提示:要在控制台中轻松编码多行功能,请使用称为template strings的相对较新的功能(自ES6起)。示例:
encodeURIComponent(`
alert('Line 1!');
alert('Line 2!');
`);
用典型的引号是不可能的。