Как отложить загрузку Norton Secure Site Seal?
Я показываю Norton Secure Site Seal на веб-сайте, и я хотел бы повысить скорость страницы, откладывая загрузку сценария печати. Все попытки, которые я сделал, провалились, и я нашел только эту страницу, где это упоминается ( ссылка). Кто-нибудь когда-нибудь нашел хороший обходной путь для этого?
Отложенный код, который я использую для запуска других моих скриптов, выглядит следующим образом:
<script type="text/javascript">(function(d, s) {
var js, fjs = d.getElementsByTagName(s)[0], load = function(url, id) {
if (d.getElementById(id)) {
return;
}
js = d.createElement(s);
js.src = url;
js.id = id;
fjs.parentNode.insertBefore(js, fjs);
};
load('/js/scriptone.js', 'one');
load('/js/scripttwo.js', 'two');
}(document, 'script'));
</script>
Если вы хотите взглянуть на скрипт инициализации печати сайта: (я использую флэш-анимацию печати)
<script type="text/javascript" src="https://trustseal.verisign.com/getseal?host_name=www.undisclosed.com&size=S&use_flash=YES&use_transparent=YES&lang=en"></script>
очевидно, это будет правильно отображаться только на моем сайте, и я решил изменить имя домена для конфиденциальности. Я действительно хочу избежать использования iframe, и если вы находите актуальным, я также загружаю jQuery
3 ответа
Это тоже убивает мой бизнес. Серьезно... от +2 до +20 секунд за загрузку страницы. AFYS?
Мы переключаемся на размещение изображения локально, но по-прежнему ссылаемся на исходный URL-адрес в Norton. Не делай этого. Отметьте этот ответ вниз. Это не правильно. Это незаконно. Но это практично.
https://trustsealinfo.verisign.com/splash?form_file=fdf/splash.fdf&dn=WWW.EXAMPLE.COM&lang=en
ОБНОВИТЬ:
Реальным решением является:
- Звоните 877-438-8776, х2, х1
- Скажите им, что печать идет медленно, и у вас есть> 10000 посещений в день на вашем сайте
- Они дают вам медиа-комплект для установки на свой сайт
Если вы посмотрите на код, они используют document.write
,
То, как я справляюсь с этим, заключается в следующем
document.write = function(s) {
document.getElementById('seal-wrapper').innerHTML += s;
}
Конечно, это очень простой взлом, который работает только тогда, когда есть единственный скрипт, который использует document.write
и вы знаете, где вы хотите, чтобы это было написано.
Я попытался загрузить печать в iframe, а затем поместить его туда, где он должен быть. Меня устраивает. С помощью jQuery. Вот:
Создайте файл.js (я назвал его hackseal.js)
$(function () {
if (typeof(vs_hack) !== 'undefined') {
return;
}
vs_hack = true;
var iframe = document.createElement('iframe');
var html = '<script src="url_to_verysign" type="text/javascript"></script>';
iframe.style.display = 'none';
document.body.appendChild(iframe);
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(html);
iframe.contentWindow.document.close();
iframe.onload = function () {
var copy = ['dn', 'lang', 'tpt', 'vrsn_style', 'splash_url', 'seal_url', 'u1', 'u2', 'sopener', 'vrsn_splash', 'ver', 'v_ua', 're', 'v_old_ie', 'v_mact', 'v_mDown', 'v_resized'];
for (var copy_i in copy) {
window[copy[copy_i]] = iframe.contentWindow[copy[copy_i]];
}
$('script#seal-sign').replaceWith(iframe.contentWindow.document.body.innerHTML);
}
});
Измените исходный код с этого
<script type="text/javascript" src="url_to_verysign"></script>
к этому
<script id="seal-sign" type="text/javascript" src="url_to_hackseal.js"></script>