Из того, что я могу сказать, веб-страница включает файл JavaScript от Google, тогда тот сценарий динамично добавляет изображение к странице ( http://www.google-analytics.com/__utm.gif ), который содержит информацию, запрошенную для входа.
SOP не относится к сценариям, изображениям или файлам CSS, которые динамично добавляются к странице. Поэтому Вы много доверия безотносительно файлов JavaScript, которые Вы включаете в свои веб-страницы, поскольку они будут иметь полный контроль над страницей.
как указано @Pandincus, вы можете подождать некоторое время, чтобы позволить blockUI завершить свою работу, а затем начать сортировку:
$(function() {
$("#sort_dlg").dialog({
autoOpen: false,
bgiframe: true,
modal: true,
buttons: {
"Cancel": function() { $(this).dialog("close"); },
"OK": function() {
$("#sort_dlg").block();
//WAIT FOR 1 SECOND BEFORE STARTING SORTING
setTimeout(function(){ doSort()}, 1000);
}
}
});
});
Чтобы продолжить мой комментарий выше:
Когда вы вызываете $ .blockUI (), он использует анимацию для постепенного появления блокирующего div, и эти анимации запускаются асинхронно. Следующая строка в вашем коде javascript - это ваша сложная сортировка, и этот код блокирует браузер, пока он не завершится. В результате запущенные анимации не заканчиваются до завершения сортировки!
Плагин BlockUI, похоже, не имеет функции обратного вызова, что досадно, но это нормально - мы можем используйте встроенный в Javascript setTimeout:
<head>
<title>Test</title>
<script src="jquery.js"></script>
<script src="jquery.blockUI.js"></script>
<script type="text/javascript">
$(function() {
$("#btnTest").click(function() {
$.blockUI();
setTimeout(doComplicatedStuff, 1000);
});
});
function doComplicatedStuff()
{
for(i = 0; i < 100000000; i++)
{
// ooh, complicated logic!
}
$.unblockUI();
}
</script>
</head>
<body>
<p><input type="button" id="btnTest" value="Test" /></p>
</body>
Хотя это не точная наука, мы в основном предполагаем, что задержка сложного кода на 1 секунду даст BlockUI достаточно времени для отображения оверлея.
Надеюсь, это поможет!
Вместо того, чтобы блокировать пользовательский интерфейс, вы должны отключить диалоговое окно с помощью метода disable () в тот момент, когда пользователь нажимает кнопку «перейти». Таким образом, пользователь не сможет ничего щелкнуть, пока процесс завершится.