Я пытаюсь связать envent, когда форма передается внутри фрейма, но у меня возникают некоторые проблемы:Bind события в содержание IFrame даже при смене URL
Первая попытка:
I пытался связать envent при загрузке страницы, он работал, но событие только привязывается, когда страница загружается целиком.
$('#mainFrame').on("load", function()
{
$('#mainFrame').contents().find('form').submit(function(){
$('#overlay').addClass("overlay");
});
});
Тогда я попытался использовать готовое событие
$('#mainFrame').ready(function()
{
$('#mainFrame').contents().find('form').submit(function(){
$('#overlay').addClass("overlay");
});
});
Но он не вызывается, когда URL будет изменен.
Вторая попытка:
Я попытался связать событие на каждом входе внутри фрейма, но я думаю, что он не может получить доступ к IFrame элементы без .contents()
$('#mainFrame').on("click", 'input',function(){
$('#overlay').addClass("overlay");
});
PS : Страница iframe с одного домена
Кто-то может мне помочь, пожалуйста?
Для доступ к содержимому iframe, вы должны подождать, пока он будет полностью загружен, поэтому привяжите события при загрузке, как вы делали первый пример. – zer00ne
Некоторые страницы слишком медленны, чтобы полностью загрузить все ресурсы, мне нужно что-то вроде .ready, чтобы связать событие сразу после загрузки dom –
Не полагайтесь на iframe, чтобы быть готовым на месте. Вместо iframes вы можете импортировать html в определенных областях вашей главной страницы, используя '.load()' или '.get()'. Если ваш контент огромен, вы можете переписать свой макет таким образом, чтобы ваш контент был разделен на более мелкие части для загрузки по требованию. – zer00ne