У меня есть вид с формой платежа по кредитной карте, размещенной на домене A. Домен B имеет отдельный веб-сайт с iframe к форме кредитной карты в домене A.запускать событие iframe onload при выполнении замены ajax по содержимому в iframe
форма на домене А использует форму Ajax, как это:
<% using (Ajax.BeginForm("CreditCard", "Framed", new { id = Model.SID },
new AjaxOptions()
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "credit-card-wrapper",
LoadingElementId = "loading-pane"
},
new { id = "new-creditcard-form" }))
{ %>
Тогда на области Ь, я с помощью пользовательских JQuery плагин управлять своим IFRAME, позволяя внешние события, чтобы изменить ГКЗ фрейма , Использование выглядит следующим образом
$('#myIframe').frameplugin('creditcard');
Что вызывает IFRAME изменить это к исходным текстам на странице кредитной карты. Я также приложил OnLoad к IFRAME, как это:
$(this).bind('load', function() {
var src = $(this).attr('src').toLowerCase();
//do stuff based on url
});
То, что я хочу сделать, это когда форма кредитной карты представлена и замена будет сделано, я хочу, чтобы документ внутри фрейма, чтобы вызвать OnLoad в IFrame в событие, так что домен b знает, что что-то произошло.
Другим решением было бы как-то связать пользовательские события с iframe и вызвать их в рамке документа. Я не уверен, как это сделать. Есть идеи?
EDIT:
Я пытаюсь использовать триггер события от фрейма до родителя, и я получаю сообщение об ошибке.
небезопасный JavaScript попытка доступа кадр с URL http://localhost:59905/Home/Framed от кадра с URL http://localhost:27412/Framed/Index/. Домены, протоколы и порты должны соответствовать .
Вот мое событие связывания
$(document).bind('success:myframe', function (event, referenceId) {
//do something
});
и вот Javascript вызов из обрамлении страницы. Это называется из OnSuccess в Ajax.BeginForm
function paymentReceived() {
var referenceNumber = $('#referenceNumber').text();
$(top.document).trigger('success:myframe', referenceNumber);
}
Я попытался с помощью триггера на родителе изнутри фрейма, но я получаю 'Опасное JavaScript попытка доступа кадр с URL HTTP: // Localhost: 59905/Главная/Рамку из фрейма с URL-адресом http: // localhost: 27412/Framed/Index /. Домены, протоколы и порты должны совпадать. – Josh
Эта проблема в междоменном пространстве очень раздражает. Найдите «кросс-доменный взлом» для получения информации о том, как обойти его, если хотите. Я обновил ответ другим решением. –
Событие onload не запускается при использовании ajax. У меня включено событие onload.Моя проблема заключается в том, что я хочу иметь возможность передавать конкретные пользовательские события с iframe на родительскую страницу. – Josh