2011-10-17 2 views
0

борется с этим в течение некоторого времени, я пытаюсь добавить функцию в главное окно из iframe, но единственный способ заставить ее работать - это предоставить функцию eval в главное окно и передавая ему строку, например:javascript, добавляющий код в родительский iframe

--main window-- 
    function evalcmd(c){ 
     eval(c); 
    } 
--iframe-- 
    parent.evalcmd('alert(location.href)'); 

идеально я хотел бы что-то в виде

--iframe-- 
    parent.myalert=new Function('alert(location.href);'); 

однако это, кажется, вызывается из контекста фрейма, то есть предупреждение ссылается на iframes filename

извините новый редактировать

предупреждение пытается показать контекст, что новая функция работает в, если я имел

--main window-- 
<div id="txt1" style="left:50px;">somettxt</div> 

--iframe-- 
parent.movetxt=new Function("document.getElemenById('txt1').style.left='35px';"); 

это будет выдавать ошибку, элемент «txt1» не найден в IFRAME однако

--main window-- 
function evalcmd(c){ 
    eval(c); 
} 
--iframe-- 
parent.evalcmd("document.getElemenById.('txt1').style.left='35px';"); 

было бы хорошо, есть способ, чтобы иметь эту функцию без использования Eval? У меня в основном есть много кода, который я хочу добавить в родительское окно, поэтому не хочу проходить через добавление родителя. к VarName/FunctionName на все ссылки

ответ

0

Вы должны быть в состоянии сделать

parent.alert("your message"); 
parent.alert(parent.location.href + "\n" + window.location.href); 
Смежные вопросы