簡體   English   中英

制作腳本書簽

[英]Making a script bookmarklet

我試圖制作腳本書簽,將表單自動填充到網站中,我基於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');            });

有人可以向我解釋應該這樣做。

您可以在JavaScript中使用encodeURIComponent函數來正確編碼任何函數。 也有網站可以做到這一點。 要制作一個書簽,您只需在編碼的腳本之前添加javascript:即可。

簡單的例子:

  1. 您的函數: alert('hello!');
  2. ...編碼的alert('hello!')%3B
  3. ...現在是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!');
`);

用您的典型報價是不可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM