[jQuery] 搜尋 iframe 網頁裡的元素
之前用 Tampermonkey 寫了一個 script,
方便在台北市圖書館的網頁上,
點下書籍連結時,是開啟在新分頁上,而不是直接跳轉。
不過最近發現這個 script 失效了…
檢查了一下,原來是因為圖書館網頁上多加了一層 iframe,
所以原本的 $(“a[href^=bookDetail]”) 這種寫法是取不到東西的,
要改成 $(“iframe”).contents().find(“a[href^=bookDetail]”) 才行~
下面這就是我改好的 Tampermonkey script,
可以在圖書館的書籍搜尋頁面上,點下書籍時都開啟在新分頁:
// ==UserScript==
// @name Taipei City Library: Open New Window when Clicking Book In Search Result
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://book.tpml.edu.tw/webpac/bookSearchList.do*
// @grant none
// ==/UserScript==
function waitUntilSearchComplete()
{
console.log("Wait search complete...");
var elem_search = $("iframe").contents().find(".keysearch");
if (elem_search.length <= 0 || elem_search.text().indexOf("共查得") < 0)
{
setTimeout(waitUntilSearchComplete, 1000);
return;
}
// Open new window when clicking any book in the search result
console.log("Search is completed. Modifying a links.");
$("iframe").contents().find("a[href^=bookDetail]").attr("target", "_blank");
}
(function() {
'use strict';
waitUntilSearchComplete();
})();
參考資訊:[jQ]如何存取控制 iframe 中的元素及方法 | 男丁格爾’s 脫殼玩
(本頁面已被瀏覽過 614 次)