2013-02-27 8 views
5

Ich betreibe eine dritte Partei HTML-Inhalt in einem iframe, dass ich keine Kontrolle über, und in einigen Fällen haben sie Links, die aufrufen javascript: window.close () direkt. Etwas wie folgt aus:Catch javascript: window.close() in einem iframe

<input type="button" onclick="javascript:window.close()" value ="CLOSE"> 

Ich habe keine Möglichkeit, eine ID oder ein Array Position dieses Elements zu finden.

Natürlich wird es in einem Iframe ignoriert, aber gibt es eine Möglichkeit zu fangen, wenn dieses Ereignis ausgelöst wird? Ich versuchte

window.addEventListener("close", closeHandler, false); 
window.addEventListener("onbeforeunload", closeHandler, false); 

, aber es ignoriert es vollständig. Gibt es eine Möglichkeit, alle JavaScript-Ereignisse/Anrufe zu erfassen? Irgendwelche Empfehlungen sind willkommen.

Antwort

0

Soweit ich weiß, müssen Sie Ereignis innerhalb des Rahmens erfassen. Wenn Sie den Rahmeninhalt nicht ändern können, haben Sie möglicherweise kein Glück. Wenn Sie Iframe-Inhalt ändern können, können Sie diesen Ereignis-Listener hinzufügen und ihn der globalen Funktion des übergeordneten Parent-Fensters zuweisen. Oder Sie könnten versuchen, postMessage zu verwenden.