2011-09-24 57 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更改全局值。