如我們所知,當我們點擊TAB鍵時,它允許我們瀏覽所有活動的href鏈接目前打開的網頁。是否有可能通過JavaScript閱讀這些URL?用於處理Tab鍵的JavaScript按
例如:
function checkTabPress(key_val) {
if (event.keyCode == 9) {
// Here read the active selected link.
}
}
如我們所知,當我們點擊TAB鍵時,它允許我們瀏覽所有活動的href鏈接目前打開的網頁。是否有可能通過JavaScript閱讀這些URL?用於處理Tab鍵的JavaScript按
例如:
function checkTabPress(key_val) {
if (event.keyCode == 9) {
// Here read the active selected link.
}
}
有以下的html:
<!-- note that not all browsers focus on links when Tab is pressed -->
<a href="http://example.com">Link</a>
<input type="text" placeholder="Some input" />
<a href="http://example.com">Another Link</a>
<textarea>...</textarea>
你可以主動與鏈接:
// event listener for keyup
function checkTabPress(e) {
"use strict";
// pick passed event or global event object if passed one is empty
e = e || event;
var activeElement;
if (e.keyCode == 9) {
// Here read the active selected link.
activeElement = document.activeElement;
// If HTML element is an anchor <a>
if (activeElement.tagName.toLowerCase() == 'a')
// get it's hyperlink
alert(activeElement.href);
}
}
var body = document.querySelector('body');
body.addEventListener('keyup', checkTabPress);
這裏是working example。
鑑於這段HTML代碼:
<a href='https://facebook.com/'>Facebook</a>
<a href='https://google.ca/'>Google</a>
<input type='text' placeholder='an input box'>
我們可以使用這個JavaScript:
function checkTabPress(e) {
'use strict';
var ele = document.activeElement;
if (e.keyCode === 9 && ele.nodeName.toLowerCase() === 'a') {
console.log(ele.href);
}
}
document.addEventListener('keyup', function (e) {
checkTabPress(e);
}, false);
我已綁定的event listener到document
元素爲keyUp
事件,這將觸發功能檢查標籤鍵是否被按下(或技術上已釋放)。
該功能檢查currently focused element以及NodeName
是否爲a
。如果是這樣,它將輸入if
塊,在我的情況下,將href
屬性的值寫入JavaScript控制檯。
這裏有一個jsFiddle
你應該能夠與keyup事件做到這一點。具體而言,event.target
應指向所選元素,event.target.href
將爲您提供該元素的href值。有關更多信息,請參閱mdn。
以下代碼是jQuery,但除了樣板代碼外,其餘部分與純javascript相同。這是一個keyup
處理程序,它綁定到每個鏈接標記。
$('a').on('keyup', function(e) {
if(e.which == 9) {
console.log(e.target.href);
}
});
的jsfiddle:http://jsfiddle.net/4PqUF/
你需要使用正則表達式 對於網站網址是
VAR URLPATTERN = /(HTTP | FTP | HTTPS):// [\ w - ] +(。[\ w - ] +)+([\ w。,@?^ =%&:/〜+# - ] * [\ w @?^ =%& /〜+# - ])?/
使用此表達式作爲示例
var regex = new RegExp(urlPattern); var t ='www.google.com';
var res = t。匹配(正則表達式/ g);
對於你要通過你的網頁的字符串該JavaScript中變量t,並得到陣列
這不足以回答這個問題。 – juliocesar
只有一個建議,而不是9,你可以使用KeyCodes.TAB。
看看'document.activeElement'獲取當前焦點的元素(如果有的話,或者'body')。你可以檢查'.nodeName.toUpperCase()===「a」',然後閱讀它的'.href'屬性 – Ian
看看這個問題(沒有測試它)。 http://stackoverflow.com/questions/11277989/how-to-get-the-focused-element-with-jquery –
@Ian你的意思是'.toLowerCase()'? –