我想拉引用者的URL,應用正則表達式,並使用結果作爲文本字段中的值。問題是,當前的實現不會將引薦來源網址拖入文本字段,這可能來自點擊前一頁上的鏈接,而是允許我輸入值。它應該自動使用引用來填充文本字段,並允許用戶根據它進行搜索(或者手動搜索,如果他們以前沒有點擊過鏈接)。控制檯爲$("#imageid").val(encodeID[1]);
行輸出Uncaught TypeError: Cannot read property '1' of null
,因爲它試圖在結果字符串的數組中找到第二個值(這意味着沒有被引用的URL)。不知道什麼是錯我的邏輯引用URL沒有被正確抓取
案例1
有了這個邏輯,它拉的引薦URL,但不會讓用戶手動搜索(沒有引用預先填充搜索字段)
var regexp = /assets\/(\d+)/;
var encodeID = regexp.exec(window.document.referrer);
if (encodeID !== null && encodeID.length == 1) {
$("#imageid").val(encodeID[1]);
} else {
var regexp = /assets\/(\d+)/;
var encodeID = regexp.exec(window.document.referrer);
$("#imageid").val(encodeID[1]);
}
案例2
通過附加 if語句,它不拉引薦URL,BU T還允許用戶搜索手動
var regexp = /assets\/(\d+)/;
var encodeID = regexp.exec(window.document.referrer);
if (encodeID !== null && encodeID.length == 1){
$("#imageid").val(encodeID[1]);
}else if($("#imageid").val() !== ''){
var regexp = /assets\/(\d+)/;
var encodeID = regexp.exec(window.document.referrer);
$("#imageid").val(encodeID[1]);
}
用戶需要能夠要麼點擊參照網址,並將它預填充字段或手動搜索。
只是快速的一面請注意,不需要重新分配'regexp'和'encodeID',因爲它們首先被分配在'if'語句之外。 – philtune
我知道,只是更專注於這個令人討厭的小邏輯問題。 – Matt
看起來正則表達式不匹配。放置'console.log(encodeID);'下面'var encodeID = regexp.exec(window.document.referrer);'並查看console.log中的輸出是什麼 – micahblu