教學(xué)評(píng)估?別煩秩伞,看這逞带!

本文屬xxKarina原創(chuàng),轉(zhuǎn)載請(qǐng)注明
個(gè)人博客地址:
https://xxkarina.github.io/

需求

作為學(xué)生纱新,總會(huì)在學(xué)期末的時(shí)候被要求教學(xué)質(zhì)量評(píng)測(cè)展氓,但是又是考試季的,老師又是在心目中都是A的脸爱,卻要一個(gè)個(gè)的去選遇汞,實(shí)在有點(diǎn)無(wú)奈
很多時(shí)候我們會(huì)想著如果在打開(kāi)瀏覽器的時(shí)候就可以順便把教學(xué)評(píng)估這活給干了不是很好嗎?
那既然存在這樣的需求簿废,肯定就會(huì)有相應(yīng)的解決方式

常用的解決方式有兩種:軟件 空入,腳本

今天咱們就來(lái)瞧瞧腳本評(píng)估是怎么實(shí)現(xiàn)的

解決方法

js腳本

為了不掉胃口,我這里決定先給出代碼族檬,想要了解的童鞋歪赢,可以繼續(xù)忘下看哦

(function(){
            var n = 0;
            function evaluate() {
                var iframe = window.top.document.getElementById('iframeautoheight').contentWindow;
                var obj = iframe.document;
                var length = obj.getElementById('pjkc').getElementsByTagName('option').length;
                var select = obj.getElementsByTagName('select');
                for(i=1;i<select.length;i++){
                    select[i].value='A';
                } 
                // select[1].value='B'; //一門(mén)課有多個(gè)老師的時(shí)候可以根據(jù)這種歌形式進(jìn)行變相應(yīng)的調(diào)整
                select[select.length-1].value='B'; 
                obj.getElementById('pjxx').value = '這門(mén)課很不錯(cuò)';
                obj.getElementById('Button1').click();
            }
            evaluate();
            window.top.document.getElementById('iframeautoheight').onload = function(){
                var iframe = window.top.document.getElementById('iframeautoheight').contentWindow;
                var length = iframe.document.getElementById('pjkc').getElementsByTagName('option').length;
                if (n < length-1) {
                    evaluate();
                    n++;
                }else {
                    iframe.document.getElementById('Button2').click();
                }
            }
        })()

上面的代碼直接放在瀏覽器的控制臺(tái)回車(chē)執(zhí)行就可以了

首先要解決一個(gè)問(wèn)題就的知道去了解剖析問(wèn)題的本身,我們要使用簡(jiǎn)單的腳本去執(zhí)行教學(xué)評(píng)估的話导梆,就要只要教學(xué)評(píng)估的界面是怎么樣的一種架構(gòu)

打開(kāi)你的教學(xué)評(píng)估界面轨淌,是不是長(zhǎng)這樣:

教學(xué)評(píng)估界面

主要的界面就是這樣

首先我們進(jìn)行分析,需要操作的地方有下拉框 文本框 按鈕 看尼,然后比較好的一點(diǎn)是递鹉,整個(gè)頁(yè)面的,下拉框藏斩,文本框躏结,按鈕都不存在沖突的地方,于是我們就可以大膽的猜想他們的類(lèi)名相同或者id名類(lèi)似啦狰域,使用getElements來(lái)大膽的進(jìn)行操作啦

然后按下F2鍵媳拴,打開(kāi)控制臺(tái)黄橘,查看你要的元素


點(diǎn)擊紅線指向的地方

你會(huì)發(fā)現(xiàn)


HTML

原來(lái)整個(gè)教學(xué)評(píng)估的界面是一個(gè)iframe嵌進(jìn)去的,既然是這樣屈溉,我們就需要注意幾點(diǎn)地方:

  • 元素的獲取——最好是從頂層窗口開(kāi)始獲取塞关,以防多層嵌套
  • iframe下的屬性——可以使用contentWindowcontentDocument(相當(dāng)于我們平時(shí)使用的window和document)

繼續(xù)往里看:


具體評(píng)價(jià)項(xiàng)下拉框

這里驗(yàn)證了我們剛開(kāi)始的猜想,命名的相似性

課程下拉框

可以看到兩者是不一樣的子巾,在這里我們可以使用兩種方式去進(jìn)行區(qū)分:

  • 正則——我們可以使用/^DataGrid1__ctl\d+_JS1$/進(jìn)行匹配
  • 數(shù)組下標(biāo)——由于整個(gè)界面就只有一個(gè)不一樣的下拉框帆赢,于是我們可以在循環(huán)獲取到的select數(shù)組的時(shí)候選擇從第二個(gè)開(kāi)始進(jìn)行操作(上面的代碼選用的是這種)

得知以上信息之后我們就可以開(kāi)始初步構(gòu)建我們的代碼了:

  • 進(jìn)行初始化,獲取相應(yīng)的元素
var iframe = window.top.document.getElementById('iframeautoheight').contentWindow;
var obj = iframe.document;
var length = obj.getElementById('pjkc').getElementsByTagName('option').length;
var select = obj.getElementsByTagName('select');

注意:這里都是使用了window.top就是為了防止獲取不到元素的情況

獲取到相應(yīng)的元素之后线梗,就可以循環(huán)的對(duì)元素進(jìn)行賦值椰于,由于select元素的第一個(gè)是課程名稱(chēng),于是我們從第二個(gè)元素(下標(biāo)為1)開(kāi)始循環(huán)

for(i=1;i<select.length;i++){
  select[i].value='A';
} 

又因?yàn)椴荒苋肯嗤巧Γ谑俏覀冸S機(jī)設(shè)置一個(gè)為B(這里選擇的是最后一個(gè))當(dāng)一門(mén)課有多個(gè)老師的情況下瘾婿,這個(gè)地方就需要進(jìn)行相應(yīng)的調(diào)整哦

 select[select.length-1].value='B'; 

最后就是編輯我們的建議啦


編輯建議

可以看到這里使用的是 textarea所以我們可以使用value來(lái)進(jìn)行賦值

obj.getElementById('pjxx').value = '這門(mén)課很不錯(cuò)';

編輯完之后自然是觸發(fā)保存按鈕啦

obj.getElementById('Button1').click();

于是我們就完成了一個(gè)單獨(dú)頁(yè)面的評(píng)估,這里需要注意的一點(diǎn)是烤咧,當(dāng)評(píng)價(jià)無(wú)誤點(diǎn)擊保存按鈕之后偏陪,iframe頁(yè)面會(huì)自動(dòng)刷新加載新的數(shù)據(jù),并且會(huì)自動(dòng)切換到下一門(mén)課程髓削,于是這部分的功能我們就不需要寫(xiě)了

所以我們要想的就是:在加載頁(yè)面的時(shí)候竹挡,再次執(zhí)行剛才那部分代碼,這里我們就可以使用到 onload函數(shù)立膛,將之前的代碼放在一個(gè)函數(shù)里evaluate于是就可以在onload的時(shí)候進(jìn)行調(diào)用

window.top.document.getElementById('iframeautoheight').onload = function(){
  var iframe = window.top.document.getElementById('iframeautoheight').contentWindow;
  var length = iframe.document.getElementById('pjkc').getElementsByTagName('option').length;
    if (n < length-1) {
         evaluate();
         n++;
    }else {                       
  iframe.document.getElementById('Button2').click();
     }
 }

循環(huán)一定不要忘記加上結(jié)束循環(huán)的條件

評(píng)價(jià)完一門(mén)課時(shí)候的狀態(tài)

評(píng)價(jià)完一門(mén)課時(shí)候的狀態(tài)

成功執(zhí)行代碼之后

成功評(píng)價(jià)之后

在此點(diǎn)擊評(píng)教的時(shí)候已經(jīng)進(jìn)不去了

評(píng)價(jià)后再次嘗試進(jìn)入

所以我們的教學(xué)評(píng)估就完成了喲

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末揪罕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宝泵,更是在濱河造成了極大的恐慌好啰,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件儿奶,死亡現(xiàn)場(chǎng)離奇詭異框往,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)闯捎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)椰弊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人瓤鼻,你說(shuō)我怎么就攤上這事秉版。” “怎么了茬祷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵清焕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)秸妥,這世上最難降的妖魔是什么滚停? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮粥惧,結(jié)果婚禮上键畴,老公的妹妹穿的比我還像新娘。我一直安慰自己影晓,他們只是感情好镰吵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布檩禾。 她就那樣靜靜地躺著挂签,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盼产。 梳的紋絲不亂的頭發(fā)上饵婆,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音戏售,去河邊找鬼侨核。 笑死,一個(gè)胖子當(dāng)著我的面吹牛灌灾,可吹牛的內(nèi)容都是我干的搓译。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼锋喜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼些己!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起嘿般,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤段标,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后炉奴,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體逼庞,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年瞻赶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赛糟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡砸逊,死狀恐怖璧南,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情痹兜,我是刑警寧澤穆咐,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響对湃,放射性物質(zhì)發(fā)生泄漏崖叫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一拍柒、第九天 我趴在偏房一處隱蔽的房頂上張望心傀。 院中可真熱鬧,春花似錦拆讯、人聲如沸脂男。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宰翅。三九已至,卻和暖如春爽室,著一層夾襖步出監(jiān)牢的瞬間汁讼,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工阔墩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘿架,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓啸箫,卻偏偏與公主長(zhǎng)得像耸彪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子忘苛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,521評(píng)論 25 707
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理蝉娜,服務(wù)發(fā)現(xiàn),斷路器柑土,智...
    卡卡羅2017閱讀 134,601評(píng)論 18 139
  • ——給生 辛貝母 星星所知的真相 藏在一顆熟睡的心臟里 當(dāng)我許愿:擁抱 信鴿便拖著尾巴降落 但夜色好像泄露了...
    辛貝母閱讀 201評(píng)論 1 2
  • 本文章主要來(lái)自嘴角微寒作者的文章薄腻,大家可以移步觀看收捣。http://www.reibang.com/p/3f73e6...
    本雍正專(zhuān)治bug閱讀 597評(píng)論 0 0