Просмотр сайтов в автономном режиме - как обойти ненужные манипуляции ajax и jquery?
Я пытаюсь просмотреть веб-страницу в автономном режиме. Страница очень проста. Он имеет видеоплеер javascript, который взаимодействует с элементом видео HTML5. Элемент video указывает URL для видео. Поэтому я просто пытаюсь воспроизвести видео в автономной сохраненной версии страницы.
Я загрузил страницу с помощью Firefox и вижу, что все ресурсы сохранены в автономном режиме. Я также настроил локальный веб-сервер для просмотра страницы в виде https://localhost/somepage.html.
В HTML видеоплеер начинается как
<div class="jp-jplayer" id="jp_jplayer_1" style="width: 640px; height: 480px;">
<img id="jp_poster_1" src="http://localhost/files/vidtb.jpg" style="width: 640px; height: 480px; display: inline;">
<video id="jp_video_1" preload="none" style="width: 0px; height: 0px;">
<source src="http://localhost/files/vid.mp4" type="video/mp4">
</video>
</div>
В консоли инструментов разработчика Chrome я не вижу никаких ошибок.
После ряда проверок / манипуляций с jquery, а также некоторого javascript из приложения (все, что сохраняется в автономном режиме), приведенный выше HTML изменяется на
<div class="jp-jplayer" id="jp_jplayer_0" style="width: 480px; height: 270px;">
<img id="jp_poster_0" style="width: 480px; height: 270px; display: none;">
<video id="jp_video_0" preload="none" style="width: 0px; height: 0px;">
</video>
</div>
Прикольные вещи.
Итак, я попытался отладить, и это очень сложно, потому что в Chrome я даже не могу выбрать атрибут источника видео, чтобы добавить часы, потому что в ту минуту, когда я смотрю в Инспекторе, элемент источника был удален.
Я установил несколько точек останова и обнаружил, что в этой функции:
$(".player.video").each(function (t, e) {
var n = $(e), i = parseInt(get_html_attribute(n, "width")) || 480, o = parseInt(get_html_attribute(n, "height")) || 270, a = get_html_attribute(n, "source"), r = get_html_attribute(n, "poster"), s = get_html_attribute(n, "caption"), l = n.parents("component").first().hasClass("float-center"), c = {
play_top: (o - 60) / 2,
height: o,
width: i
}, u = "true" === get_html_attribute(n, "fullscreen");
l ? c.play_left = 27 : c.play_left = (i - 60) / 2, n.html(bm.render_template("media", "video", c));
var d = {poster: r, m4v: a};
s && (d.track = s), u && (d.allowFullScreen = !0), n.find(".jp-jplayer").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", d)
},
play: function () {
$(this).jPlayer("pauseOthers")
},
solution: "flash, html",
supplied: "m4v",
swfPath: "/lib",
cssSelectorAncestor: "#" + e.id,
size: {width: i + "px", height: o + "px", cssClass: ""},
nativeVideoControls: {
msie: /msie [0-6]/,
ipad: /ipad.*?os [0-4]/,
iphone: /iphone/,
ipod: /ipod/,
android_pad: /android [0-3](?!.*?mobile)/,
android_phone: /android.*?mobile/,
blackberry: /blackberry/,
windows_ce: /windows ce/,
webos: /webos/
}
}).bind($.jPlayer.event.play, function () {
$(this).jPlayer("pauseOthers")
})
})
источник видео заканчивается удалением, но неясно, где и почему.
Я думаю, что происходит, приложение предполагает, что есть некоторые необходимые ajax-вызовы, и что доступ к видео осуществляется через учетные данные CORS. Или, может быть, что-то связанное с заголовками и javascript, которые ищут заголовки, ожидаемые в онлайн-браузере, или ищут различные заголовки ответа сервера. Но так как я скачал видео, мне не нужны AJAX-вызовы, проверка учетных данных и т. Д. И т. Д. В основном мне нужно удалить все приложения или jquery-функции, вызывающие это. Если я удаляю сценарии вообще, это никуда меня не приведет, так как воспроизведение видео выполняется через сценарии.
Итак... что бы ты сделал? Как бы вы пошли на отслеживание частей кода, которые вызывают это? Приводит ли эта проблема к немедленному размышлению о типичном виновнике, которого я мог бы проверить?
Спасибо, и извините, я не могу быть более точным о проблеме. Я - гитарист, который знает немного кодирования, но пытаться разгадать эту проблему (среди тысяч лжи javascript) выходит за рамки моего опыта программирования. Я могу все исправить, как только узнаю проблему, но это этап устранения неисправностей, который оказывается безумным.
С уважением