[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 脫殼玩
(本頁面已被瀏覽過 575 次)