Saya adalah pengguna situs web ini. Alasan saya ingin mendapatkan elemen situs web adalah desain webnya sangat merepotkan sehingga saya mencoba menulis skrip, tidak secara manual, untuk mengubah nilai beberapa elemen. Tetapi saya mengalami masalah bahwa saya tidak dapat mengakses elemen dengan getElementsByName("name") atau getElementById("name") SAMPAI Saya memeriksa elemen dengan CTRL + SHIFT + C dalam mode pengembang. BTW, saya tidak bisa mendapatkan Elemen bahkan setelah memeriksa Firefox ESR 78.10.1.

Kalian bisa mencoba melihat apa masalahnya. Ini adalah tangkapan layar di Edge Chromium saat saya mencoba mendapatkan nama pengguna <input>.

Seperti yang telah saya teliti, beberapa orang mengatakan halaman tidak dimuat sepenuhnya, tetapi saya menulis js ini untuk menguji apakah itu dimuat.

// ==UserScript==
// @name         Bjjt
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://www.baijjt.com/baijjtcn/RT-e6k7d/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// ==/UserScript==

(function () {
    'use strict';
    window.onload = function () {
        alert(window.onload);
    }
    function myInitFunction() {
        alert("JS is run!");
    }
    window.addEventListener("load", myInitFunction);
    //My goal is to run this ↓↓↓.
    //document.getElementById("ItemQuantity").value = document.getElementById("maxItemQuantity").value;
})();

Ini memberi tahu saya bahwa ini dimuat, tetapi saya masih tidak dapat menjalankan document.getElementsByName("username") karena mengembalikan null obyek.

Bisakah seseorang memberi tahu saya apa yang terjadi di sini, saya harap Anda dapat membantu saya untuk mulai menulis skrip saya. Terima kasih banyak!

0
Cookie 17 Mei 2021, 10:03

1 menjawab

Jawaban Terbaik

Di Chrome, ia memiliki fitur yang bagus saat menggunakan konsol jika Anda memilih iFrame, ia akan menargetkan ini untuk dokumen. Sepertinya di Firefox tidak memiliki fitur ini.

Jika Anda ingin melakukan ini dengan kode, pada dasarnya Anda perlu melakukan hal yang sama seperti Chrome.

Juga jika Anda selalu ingin memilih hal yang sama, Anda mungkin juga ingin melakukan window.top untuk juga memastikan Anda selalu memulai dari tempat yang sama, jika di dalam pemeriksaan Anda memilih dokumen lain.

Jadi menggunakan ide ini, ini harus berhasil.

window.top    //first start from the main top window
   .document.querySelector('iframe')  //now select the iFrame
   .contentDocument.querySelector('[name=username]') //finally do our selector

Hasil:

enter image description here

0
Keith 18 Mei 2021, 08:59