假设有a,b,c三个页面.
b,c页面不能改.
通过a打开b页面,通过b能打开c页.
现在c某个操作可以让某值返回到b的一个text框,
想让b中text框变化(textchange)时,做一些事情.
目前b页面基本没有任何脚本.请问一下,不改动b,c文件的前提下,
怎么加脚本到b页面.a:  window.open(b.html,...)

解决方案 »

  1.   

    a::window.open('b.html','pageB')只要在open第二个参数指定一个名,这样就不会打开新的窗口...   至于要传值,如果要跨域的话,把值通过GET 的方式,比如 open('b.html?key=val&key2=val2...
    的方式传递,如果b.html已经打开,会刷新 b.html页
    如果同一域名下  window.open会返回一个可操作的window对象,这就很简单了...
      

  2.   

    至于你说的在C页改B页的数据..类似于 
    C.html
    var b_window=window.open('b.html','pageB');   b_window.document.getElementById('textID').value='some value'就行了..未测试,不过以前曾经做过MP3播放的页面,应该没问题... 
      

  3.   

    谢谢你PLZZZ
    不是你说的那个意思.
    可能我没表达好.
    open('b.html?key=val&key2=val2.. 这是a传值给b吧,
    我不要这个,再说这样b要去接收,  b和c的代码都不能改.
    c传值给B,已经有的功能.我想让C操作后返回值到B的某个text时, 也让我的A页面有同样的值.
    我想在B的text加textchange的脚本, 怎么实现.简单地就是说a打开b,我要b里面有一些脚本的能做某些事.  现在b里面没有脚本.
     
      

  4.   


    这个没问题,js可以不在b页面而在a页面。由于你在a页面里面打开b页面的,你可以在b页面里这样调用a页面里的方法:window.opener.funInA();试一下。
      

  5.   

    可以通过地址栏执行JAVASCRIPT的方法,向B添加脚本。
      

  6.   

    按你的方式,a: window.open(b.html,...)
    A里要用变量记着B
    var b=window.open(b.html,...);
    然后对b.document进行DOM操作,可以添加脚本。
    详细的就自己去看DOM。雇人可是要花钱的。
      

  7.   


    谢谢达人,我现在就是这样做的,但发现在这样问题。
    比如通过a打开b,让b执行一下点下的效果。
    var b=window.open(b.html,...);
    b.document.getElementbyID("button1").click()
    这个功能,有时成功有时不成功,
    跟b页面是否加载完有关是不是?如何解决? 让它睡一下?
    这是按钮已经有句柄,让它执行一下事件,我会。如果想给没有句柄的控件加上事件的句柄怎么加?
    b.document.getelementbyid("text1").onchange=funChange(),对么?
    好像没反应。