javascript - 制作脚本书签
问题描述
我正在尝试制作将表单自动填充到网站中的脚本书签,我基于谷歌搜索制作的脚本在经过一些修改后工作,但它只能在控制台中工作。
$($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'); });
有人可以向我解释它应该完成。
解决方案
您可以使用encodeURIComponent
JavaScript 中的函数来正确编码任何函数。也有网站可以做到这一点。要制作书签,您只需javascript:
将其添加到您的编码脚本中。
简单的例子:
- 你的功能:
alert('hello!');
- ...编码
alert('hello!')%3B
- ...现在是一个 URL:
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。瞧!一个小书签。任何错误都将记录在您的浏览器控制台中。
编辑
额外提示:要在控制台中轻松编码多行函数,请使用一个相对较新的功能(从 ES6 开始),称为模板字符串。例子:
encodeURIComponent(`
alert('Line 1!');
alert('Line 2!');
`);
这对于您的典型报价是不可能的。
推荐阅读
- amazon-web-services - Error in Call to Sagemaker Endpoint with Lambda and API Gateway
- ios - 我怎样才能提高它的性能......为什么没有 LazyZStack 这样的东西?
- firebase - 如何在 Firestore 集合中检索文档的 documentId,以便在返回对象流的 getter 中使用它
- c++ - 单例和新运算符 - 线程安全
- c - 如何在C中清除控制台而不闪烁
- python - 使用 python 从 Cassandra 数据库中检索数据
- database - 我可以为 MongoDB 索引配置特定路径吗?
- html - 如何对齐网格系统html/css?
- docker - 无法到达 docker 容器 - 端口未绑定
- html - 响应式列,防止孩子在折叠时在列之间移动