Javascript 将变量传递到没有查询字符串的新页面

Javascript 将变量传递到没有查询字符串的新页面,javascript,html,asp.net,Javascript,Html,Asp.net,有没有一种方法可以在不使用查询字符串的情况下,将一个变量从带有弹出式iframe的页面传递到客户端按钮单击的弹出式(iframe)页面?我的变量太大,无法使用查询字符串 问同样问题的另一种方式 是否有一种方法可以在客户端按钮单击时不使用查询字符串将变量从一个页面传递到另一个页面?我的变量太大,无法使用查询字符串 这用于IE 8和更高版本的html 5存储将不起作用如果您的两个页面位于同一个域中,您可以使用。它是一个JavaScript对象,可以容纳高达5MB左右的字符串 如果需要存储字符串以外的

有没有一种方法可以在不使用查询字符串的情况下,将一个变量从带有弹出式iframe的页面传递到客户端按钮单击的弹出式(iframe)页面?我的变量太大,无法使用查询字符串

问同样问题的另一种方式

是否有一种方法可以在客户端按钮单击时不使用查询字符串将变量从一个页面传递到另一个页面?我的变量太大,无法使用查询字符串


这用于IE 8和更高版本的html 5存储将不起作用

如果您的两个页面位于同一个域中,您可以使用。它是一个JavaScript对象,可以容纳高达5MB左右的字符串

如果需要存储字符串以外的其他数据,可以使用JSON.stringify()和JSON.parse()在数据类型和字符串之间进行转换

没有HTML5
您可以选择使用JavaScript并获取/设置它们,否则JavaScript应该能够在受限环境中工作。

您可以从父窗口调用子窗口上存在的函数,并将数据从父窗口传递给子窗口

我为这个非常基本的示例道歉,在这个示例中,我们将变量
dummy\u txt
中的任何内容从父窗口传递到子窗口

父(Parent.htm)

var child_-win;
document.getElementById(“btn”).onclick=function(){
child_win=window.open(“child.htm”);
dummy_txt='blah blah blah blah blah…'
setTimeout(函数(){
child_win.document.write(虚拟文本);
//嘿,你可以做child_win.my_own_函数(dummy_txt)
}, 2000);
}
Child(Child.htm)
这不是最干净的方法,但您也可以做一些类似于Nabil建议的事情,让子iframe通过window.parent调用javascript函数

var myValueFromParent = window.parent.SomeFunctionOnParentFrame();
我使用此方法不是将值从父对象传递给子对象,而是让子对象向父对象发送信号。

请尝试以下操作:

主页

JS Iframe测试


发送到Iframe document.getElementById('frame')。onload=function(){ document.getElementById('frame').contentWindow.doSomething(“Hi”); } var btn=document.getElementById('send'); btn.addEventListener(“单击”,函数(){ var text=document.getElementById('toInject')。值; document.getElementById('frame').contentWindow.doSomething(text); //window.frames[0].doSomething(text);//可选 },假);

IFrame页面(js test IFrame.htm)

函数doSomething(文本)
{
document.getElementById('valueHere')。innerHTML=text;
}
默认文本



请记住,在操作iframe或向其传递任何变量之前,需要等待iframe加载。还请注意,这仅适用于在同一域中寻找页面的情况。

假设两个页面都在同一域中,您可以使用cookie来完成此操作(尽管这种方法仍有大小限制)。页面是否在同一域中?我的意思是,同一原产地政策适用吗?他们在同一个域上。。。查询字符串只允许2500-3000字符服务器端或客户端变量?客户端变量,我不想做一个postbackSorry不能使用html5应该在我的问题中说如果你不能使用html5,请更新你的问题,列出你的环境和限制。
<html><body></body></html>
var myValueFromParent = window.parent.SomeFunctionOnParentFrame();
<html>
    <head>
        <title>JS Iframe Test</title>
    </head>
    <body>      
        <iframe id="frame" src="js-test-iframe.htm"></iframe>
        <br /><br />
        <input type="text" id="toInject" /> <button id="send">Send To Iframe</button>        

        <script type="text/javascript"> 
            document.getElementById('frame').onload =  function(){  
                document.getElementById('frame').contentWindow.doSomething("Hi");                    
            }

            var btn = document.getElementById('send');

            btn.addEventListener("click", function(){
                var text = document.getElementById('toInject').value;
            
                document.getElementById('frame').contentWindow.doSomething(text);
                // window.frames[0].doSomething(text); // An alternative

            }, false);                  
        </script>
    </body>
</html>
<html>
    <head>  
        <script type="text/javascript">
            function doSomething(text)
            {
                document.getElementById('valueHere').innerHTML = text;              
            }
        </script>
    </head>
    <body>
        <div id="valueHere">Default Text</div>
    </body>
</html>