偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

前端自動(dòng)腳本中常見(jiàn)的幾個(gè)問(wèn)題,你遇到了嗎?

開(kāi)發(fā) 前端
自動(dòng)腳本沒(méi)有想象中那么難,作為一個(gè)前端,我們依舊使用我們最擅長(zhǎng)的 js 。

公司有個(gè)審核平臺(tái),下班時(shí)間沒(méi)人審核,審核速度更是著急人,所以老板讓我寫(xiě)一個(gè)能夠自動(dòng)審核的腳本,只用于下班時(shí)間。我就開(kāi)始了自己的第一個(gè)自動(dòng)腳本。

自動(dòng)腳本沒(méi)有想象中那么難,作為一個(gè)前端,我們依舊使用我們最擅長(zhǎng)的 js 。寫(xiě)一段需要執(zhí)行的 js 代碼,然后放入到調(diào)試器中回車執(zhí)行,此時(shí)我們的自動(dòng)腳本就能正常跑起來(lái)嘍!

示例:

沒(méi)有寫(xiě)過(guò)自動(dòng)腳本的前端,趕緊看過(guò)來(lái)!寫(xiě)自動(dòng)腳本常見(jiàn)的幾個(gè)問(wèn)題分別如下:

問(wèn)題1:獲取到的元素是為 null ?

我們通常直接使用 document.getElementById('btn') 就可以穩(wěn)定地獲取到元素,但是我今天在別人的網(wǎng)站里,審查元素的時(shí)候,可以找到 id 為 btn 的元素,但是在調(diào)試器中獲取到的一直是 null 。

現(xiàn)象:document.getElementById('pass-btn') 直接獲取時(shí),返回的是 null ,調(diào)試器中選中元素,然后再獲取元素時(shí),此時(shí)獲取到的元素不為空。

原因:檢查頁(yè)面結(jié)構(gòu)中是否包含 iframe 結(jié)構(gòu),如果元素是包含在 iframe 引入的外部文件中,就會(huì)出現(xiàn)上述問(wèn)題。

解決辦法:先找到 iframe ,在當(dāng)前對(duì)象中查找 DOM

var iframe = window.document.getElementById('myframe')
var test = iframe.contentWindow.document.getElementById('pass-btn')
console.log('-->', test)

contentWindow 是一個(gè)只讀屬性,返回指定 iframe 的窗口對(duì)象,各個(gè)瀏覽器均支持。

此時(shí)就能很穩(wěn)定的查找到元素了,不需要其他任何操作。

問(wèn)題2:使用 js 添加的點(diǎn)擊事件無(wú)效?

js 中觸發(fā)點(diǎn)擊事件有兩種方式:click 和 onclick 。

現(xiàn)象:自己在本地寫(xiě)的觸發(fā)點(diǎn)擊事件,使用的 onclick() 在本地示范的時(shí)候,可以觸發(fā),沒(méi)有任何問(wèn)題,如:

<a href="javascript:;" id="btn" onclick="alert('2')">
確定
</a>

<script>
var btn = document.getElementById('btn')
btn.onclick()
</script>

此時(shí)如果換成:

var btn = document.getElementById('btn')
btn.addEventListener('click', () => {
console.log('執(zhí)行')
})
btn.onclick()

此時(shí)的點(diǎn)擊事件就會(huì)失效,運(yùn)行腳本的時(shí)候靜靜躺那不執(zhí)行,我們來(lái)看看 click 與 onclick 的區(qū)別?

click 是一個(gè)方法, onclick 是一個(gè)事件。

方法是寫(xiě)語(yǔ)句直接調(diào)用,即顯示調(diào)用,可以觸發(fā) onclick 事件,事件一般都以 on 開(kāi)頭,不需要程序調(diào)用,事件觸發(fā)的函數(shù)會(huì)在相應(yīng)的事件觸發(fā)時(shí)調(diào)用。

所以寫(xiě)自動(dòng)腳本時(shí),使用 click 去調(diào)用,模擬用戶的點(diǎn)擊操作。

問(wèn)題3:調(diào)試器中斷點(diǎn)如何避開(kāi)?

有經(jīng)驗(yàn)的程序員會(huì)在項(xiàng)目重要的操作流程中加入 debugger 斷點(diǎn)操作,在不打開(kāi)調(diào)試器的時(shí)候能夠正常運(yùn)行,打開(kāi)調(diào)試之后就會(huì)出現(xiàn)斷點(diǎn),阻止我們?cè)谡{(diào)試器執(zhí)行腳本。我們?nèi)绾魏雎詳帱c(diǎn)呢?

現(xiàn)象:添加 debugger 后,打開(kāi)調(diào)試模式,程序就會(huì)執(zhí)行到斷點(diǎn)時(shí)停住,代碼無(wú)法繼續(xù)向下執(zhí)行!

解決辦法:禁用所有斷點(diǎn),如圖所示:

? ?

責(zé)任編輯:張燕妮 來(lái)源: 博客園
相關(guān)推薦

2019-10-30 16:03:48

JavaJava虛擬機(jī)數(shù)據(jù)庫(kù)

2021-10-12 00:04:24

腳本備份MariDB

2022-05-16 08:09:45

前端API

2022-12-02 08:47:36

2023-06-27 07:21:51

前端開(kāi)發(fā)坑點(diǎn)

2022-01-12 08:53:04

數(shù)字化疫情企業(yè)發(fā)展

2021-05-12 13:38:47

云計(jì)算

2017-10-24 12:32:03

小程序APPbug

2020-08-06 15:50:26

微信無(wú)法登陸移動(dòng)應(yīng)用

2017-09-23 15:17:21

散熱筆記本電腦藍(lán)屏

2021-02-27 17:13:21

前端代碼邏輯

2021-07-28 10:13:00

公有云云計(jì)算云遷移

2019-12-16 15:37:57

JavaScript人生第一份工作瀏覽器

2015-10-10 15:37:20

軟件沖突OS X

2020-10-25 08:45:38

IPv6網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)

2017-10-14 14:11:44

iOS 11iOS 10升級(jí)

2015-05-26 09:35:29

運(yùn)維運(yùn)維危機(jī)云計(jì)算應(yīng)用

2013-05-06 15:42:49

2023-12-15 10:42:05

2009-09-07 14:39:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)