Действительно ли возможно отследить нажатие кнопки в iFrame, если я не управляю внешним веб-сайтом, или это - содержание?
(очень вымышленный пример), если у меня был iframe как это:
<iframe src="http://www.johnny.com/plugins/like.php?href=http%253A%252F%252Fexample.com%252Fpage%252Fto%252Flike&layout=standard&show_faces=true&width=450&action=like&font&colorscheme=light&height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>
Если вы спрашиваете, можете ли вы найдите кнопку в DOM HTML-кода, содержащего ваш iframe, а затем добавьте к нему событие onclick, тогда да, если вы обслуживаетесь из того же домена.
window.parent.getElementById()
будут работать, как и любые другие функции DOM.
Если вы не в том же домене, браузер вам не позволит. Это называется межсайтовым скриптингом (XSS) и считается нарушением безопасности.
Если вы находитесь в другом домене, владелец добавил ваш iframe, верно? Если да, попросите их также добавить события. Они могут передавать переменные и вызывать вспомогательные функции в вашем iframe. Таким образом, они могли передать кнопку, и вы могли добавить к ней событие.
Ненадежно во всех браузерах, нет.
Это легко квалифицируется как эксплойт межсайтового скриптинга (XSS) и может быть обнаружен большинством современных браузеров.
Ответ: вообще невозможно без какого-либо сотрудничества с удаленным сайтом.
Это связано с тем, что для вашей защиты действует та же политика происхождения.
Если у вас есть какое-то сотрудничество, вы можете использовать междоменный обмен сообщениями (например, с easyXDM ).