У меня есть этот код в некоторых моих файлах ASCX:
<%=Html.ActionLink(Resources.Localize.Routes_WidgetsEdit, "Edit", "Widget",
new { contentType = Model.ContentType, widgetSlug = Model.Slug, modal=true},
new
{
rel = "shadowbox;height=600;width=700",
title = Resources.Localize.Routes_WidgetsEdit,
@class = "editWidget"
})%>
Обратите внимание, что rel = "shadowbox ..." там. Это необходимо для подключения клона ShadowBox Lightbox для этого ActionLink.
Это прекрасно работает, когда пользователь запрашивает страницу, содержащую этот элемент управления, через обычный запрос браузера. Но я также визуализирую / собираю эти элементы управления View User через AJAX-запросы. Например, я бы сделал запрос к / Widget / RenderToString / ..., используя метод jQuery .ajax (), и он вернул бы HTML-код для этого элемента управления. Это работает отлично, и это делает код отлично. Затем я вставляю (добавляю) результат в DIV на страницу, с которой был сделан запрос AJAX. Это также хорошо работает, и возвращаемый HTML-код добавляется. Единственная проблема - ShadowBox не подключен. Даже при том, что код для этого предоставлен.
Кажется, требуется перезагрузка страницы (F5) каждый раз, чтобы подключить ShadowBox. Поскольку я выполняю AJAX GET и мгновенно добавляю, чтобы избавиться от необходимости выполнять обход сервера, я также хотел бы, чтобы ShadowBox подключался без обновления.
Может ли кто-нибудь помочь мне с этим? Спасибо
UPDATE:
Да, у меня есть это на моем сайте. Глава мастера:
<script src="<%=Url.Content("~/Scripts/shadowbox-build-3.0rc1/shadowbox.js") %>" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
// insert functions calls here that provide some default behaviour
externalLinks();
});
Shadowbox.init({
language: "en",
players: ["img", "html", "iframe"],
onClose: function() { location.reload(true) }
});
</script>
Как мне снова запустить Shadowbox после вызова AJAX?