2011-09-24 56 views
2

我的問題有點難以解釋。我想要做的是,我在某個頁面上有一個按鈕。當我按下該按鈕時,我必須能夠訪問位於另一頁上的表單的元素(,而不打開其他頁面)。Javascript - 從未打開的頁面訪問元素

按該按鈕會編輯一些從「未開封」頁面表單元素,然後將它張貼,這一切無需打開任何額外的彈出/標籤/窗口。表單發佈後,該按鈕將消失。

有問題的形式包含離不開其訪問特定頁面進行檢索的唯一參數,所以我不能效仿在獨立的形式。

我的一些猜測是使用動態的iframe設置爲「顯示:無」,或者阿賈克斯,但除此之外,我不能完全肯定是否可能,如何做到這一點。

有人有想法嗎? (對不起,如果問題不是很清楚,我盡力說明問題)

+1

你打算使用jQuery嗎? –

+1

做AJAX的方式! – Ehtesham

+0

任何方式都可以,無論是jQuery還是Ajax或其他。這是一個用戶腳本。 – AgentRev

回答

0

我就是這麼做的,使用jQuery:使用$獲得()

  • 提取從HTML字符串形式節點表單頁面

    1. 採集的HTML代碼
    2. 創建一個隱藏的iframe
    3. 解析表單的HTML新iframe中
    4. 修改表單的值;
    5. 「URLEncode」表單的數據使用jQuery的.serialize();
    6. 郵政序列化的數據使用$。員額()的目標,具有 回調函數接收響應
    7. 如果響應指示成功,隱藏按鈕和刪除隱藏的iframe

    我決定從$ .get()返回的HTML字符串中提取表單,因爲解析它不需要在將實際表單用作對象之前加載整個表單頁面。使用隱藏的iframe進行分析可能不是最「專業」的方式,但它可行。

  • 0

    嘗試使用框架。 下面給出的示例代碼有3頁 1.頁面1是包含兩個框架的父文檔。 2.frame1指PAGE2 3.frame2指PAGE3

    test1.htm

    <html> 
    <head> 
    <title>test</title> 
    <frameset rows="25px,*" frameborder="0" framespacing="0" > 
    <frame name="Frame2" id="Frame2" src="test2.htm"/> 
    <frame name="Frame1" id="Frame1" src="test3.htm"/> 
    </frameset> 
    </head> 
    </html> 
    

    test2.htm

    <html> 
    <script> 
    var global="testing" 
    
    </script> 
    
    </html> 
    

    test3.htm

    <html> 
    <script> 
    alert(parent.window.frames[0].global); 
    parent.window.frames[0].global="local" 
    
    function test() 
    { 
    alert(parent.window.frames[0].global); 
    } 
    
    </script> 
    
    <body> 
        <input type="button" onclick="test()" /> 
    
    </body> 
    </html> 
    

    在頁面test2中,可以從頁面test3.htm更改全局值。