Я пытаюсь вызвать функцию из другого кадра.Но когда я использую «document.getElementById (frame_id))», он не обнаруживается.
Я проверил, каким был вывод innerHTML документа, и целевой фрейм, который мне нужен, находится на 1 слой внутри другого фрейма.
В основном iframe я использую: document.getElementById ('player')), но он возвращает: null
Мне нужно перейти к iframe "player" в iframe "menu"..
вот код в "основной" главе iframes:
function callPlayer(frame_id, func, args){
if(!frame_id) return;
if(frame_id.id) frame_id = frame_id.id;
else if(typeof jQuery != "undefined" && frame_id instanceof jQuery && frame_id.length) frame_id = frame_id.get(0).id;
if(!document.getElementById(frame_id)) return;
args = args || [];
/*Searches the document for the IFRAME with id=frame_id*/
var all_iframes = document.getElementsByTagName("iframe");
for(var i=0, len=all_iframes.length; i<len; i++){
if(all_iframes[i].id == frame_id || all_iframes[i].parentNode.id == frame_id){
/*The index of the IFRAME element equals the index of the iframe in
the frames object (<frame> . */
window.frames[i].postMessage(JSON.stringify({
"event": "command",
"func": func,
"args": args,
"id": frame_id
}), "*");
}
}
}
function switchState()
{
callPlayer('player', 'stopVideo');
}
Надеюсь, кто-то понимает мое описание ..