好吧,讓我先說這個,說我沒有什麼編程經驗,所以如果我的解釋隱瞞了一些嚴重的無知,我很抱歉。我一直想學習一些技巧,但我永遠找不到任何教程。如何從一個頁面插入一個JavaScript函數到另一個頁面
這裏的交易:
有一個網站,爲您提供各種科學問題和檔次的輸入。對於每個問題,都有一個名爲「練習其他版本」的按鈕,它會生成一個彈出框,其中包含新的類似版本的問題。這個新版本還有一個名爲「顯示答案」的按鈕,顯然,它顯示瞭解決方案。
我用螢火找到顯示答案按鈕的代碼:
<input type="submit" onclick="key('0','1')" style="border: 1px solid rgb(51, 102, 153); margin-left: 1%;" value="Show Answer" name="Key">
我看着螢火蟲的「DOM」標籤看鍵功能的內部代碼:
function key(pos, showAnsFlag) {
setYpos();
if (showAnsFlag == 1) {
document.forms[0].showAnswer.value = 1;
document.forms[0].hideAnswer.value = 0;
} else {
document.forms[0].hideAnswer.value = 1;
document.forms[0].showAnswer.value = 0;
}
document.forms[0].pos.value = "";
document.forms[0].keypos.value = pos;
document.forms[0].randpos.value = "";
document.forms[0].solpos.value = "";
document.forms[0].subaction.value = "key";
}
我又看了看螢火蟲的Net選項卡來發現POST參數後,我點擊「查看解決方案」:
Key Show Answer
RC_821796_0_0_821813 mc //[These are the names of the problems]
RC_821796_0_0_821813 1
RC_821796_0_1_821813 mc
RC_821796_0_1_821813 0
UserPass //[ERASED, because I'm not sure if it can be used maliciously]
feedback0 rmh
hideAnswer 0
hideSolution
keypos 0
pos
randpos
showAnswer 1
showSolution
solpos
struct CuDMAcAACEAuEuEaANErASAJANBPBjDABkCiAaAxAEEfAjCgAvAjDjDQCTDTCbBjAUBtDXDXBqEXAFAjEPAVEMESvVBVzUCcEwALAMCSBQDewWDTAPBUEBCeArESCmDWAfErAXETBFEoBDCEDxBODlCbAeEnCNEKDmDgBHAJESEKATDmAoEFAdCUALCiCLBXCcDFATAcDRDoCwERuUBTDKEkBKESCXATAbDRAwBYEFAeDREWDBCdCeElBJCPCSDtAeABBxDwDDByEPAwEVAtAoDADWCkCCBBAwDNCyEECEAlCeACDCAPCmAsDM
subaction key
ypos 196
好吧,當我「練習另一個版本」時,所有內容都在頁面上。我的想法是,當我在普通頁面上時,我想調用「key」函數(或至少一個與它完全相同的函數),而不是「顯示另一個版本」頁面。問題是,當我檢查正常頁面的DOM時,它甚至沒有可訪問的鍵功能。
有什麼辦法可以在頁面中注入JavaScript來強制調用密鑰函數嗎?最理想的做法是,在所有的問題中加入一個小書籤,調用關鍵函數並揭示答案。
鑑於我缺乏知識,我不知道該怎麼嘗試。我試着像這樣簡單的事情(在地址欄中)
javascript:document.forms[0].showAnswer.value = 1;
而且我知道它做了什麼,因爲當我輸入
javascript:alert(document.forms[0].showAnswer.value);
它會提示「1」,但我只是不知道它究竟在做什麼,或者我還有什麼要做。
編輯
讓我試着clarify--我沒有自己的網站,所以我試圖做一些客戶端JavaScript的工作來操縱網站去做我想要的(記你,我甚至不確定這是可能的)。
在網站的一個部分,在一個名爲「practice.tpl」的頁面中,它允許我按下一個名爲「Show Answer」的按鈕(按鈕調用前述的關鍵功能並顯示解決方案)。
但是,在另一頁上,按鈕和函數不存在。所以我想知道我是否可以藉助practice.tpl頁面中的關鍵函數,並將它注入到另一個頁面中。
編輯2
這是兩個頁面的源代碼:
首頁(就是我試圖將代碼注入) http://pastebin.com/r7KVMU1N
「額外的問題」頁面(關鍵功能之一) 它不會讓我發佈多個鏈接 - 所以去掉以下鏈接: http://pastebin.c[]om/D8Nc6fbk
您能否將我們鏈接到該頁面,那麼我們可能會幫助更多? – vimist 2010-06-18 18:09:01
下面是兩個頁面的源代碼: 主頁(就是我試圖將代碼注入) http://pastebin.com/r7KVMU1N 「額外的問題」頁面(就是那關鍵功能是) http://pastebin.com/D8Nc6fbk – 2010-06-18 21:16:19