#javascript #redirect #ads
#javascript #перенаправление #реклама
Вопрос:
У меня есть пара рекламных сетей, которые смогли интегрировать URL-адрес обратного доступа (запрашиваемый, когда показ платной рекламы недоступен), но одна рекламная сеть может принимать только тег сценария обратного доступа, которого у меня нет.
Скрипту обратного доступа необходимо загрузить содержимое URL-адреса (изображение размером 728×90 или флэш-баннер) в себя (ему также необходимо выполнить загружаемый им Javascript). Кто-нибудь может помочь мне создать тег сценария обратного доступа?
Я пробовал это:
<SCRIPT language="Javascript">
// loads within itself, in the 728x90 banner space
document.write("<SCR" "IPT language='Javascript' src='http://www.mydomain.com/passback.php'></SCR" "IPT>");
</SCRIPT>
Но получил ошибки скрипта. Есть идеи?
Комментарии:
1. @Tom Как выглядит
passback.js
файл?2. Какие ошибки вы получили?
3. Ваш код (та часть, которую вы показали) в порядке. Проблемы вызывает скрипт, указанный в атрибуте src — хотите поделиться им? Кроме того, следующий вопрос января — какие ошибки скрипта вы получаете?
4.
passback.php
имеет ли он правильный MIME-тип?
Ответ №1:
Просто идея. Что это даст, если вы попробуете это?
<SCRIPT language="JavaScript" type="text/javascript">
var script = document.createElement("script");
script.type = "text/javascript"; // This is for HTML 4.01 validation
script.src = "http://www.mydomain.com/passback.php";
document.getElementsByTagName("head")[0].appendChild(script);
</SCRIPT>
Комментарии:
1. вы не получаете ошибку из приведенного выше кода, она в другом месте
2. Я согласен с @alessioalex, эта ошибка, скорее всего, в самом вашем скрипте. Попробуйте проверить свой javascript в чем-то вроде jslint, чтобы попытаться найти недостающие точки с запятой и фигурные скобки. Я также поддержал приведенный выше ответ, поскольку это хороший метод.
3. Я тоже согласен с @alessioalex .
4. Понятно, что ошибки, которые получает автор, вызваны не его
document.write...
кодом — так зачем же переписывать эту часть? Это скрипт, связанный в src (или других потенциальных скриптах на странице), который вызывает всплывающие ошибки.5. Загружаемый скрипт является тегом Adsense, и ошибка скрипта возникает, когда тег Adsense пытается создать ссылку на свой собственный внешний скрипт.
Ответ №2:
Уже предоставленный скрипт близок к тому, который я всегда использую для этого:
var js = document.createElement("script");
js.type = "text/javascript";
js.src = "//www.mydomain.com/passback.php";
document.getElementsByTagName('head')[0].appendChild(js);
Единственное, что отличается, это то, что схема URL не указана, поэтому, если вы работаете на http-сервере, тогда будет вызван http URL, а если вы работаете на https, тогда будет вызван https — их смешивание может быть причиной того, что ваши скрипты могут не загружаться.
В случае ошибки вашего скрипта я бы посоветовал использовать Chrome и инструменты разработчика — это позволило бы вам точно увидеть, какая строка выдает вам эту ошибку.
Комментарии:
1. 1 Особенно за отсутствие
http:||https:
. Зачем люди вообще добавляют это?2. @Josh указание схемы URL является «правильным» способом с точки зрения стандартов. URL без схемы на самом деле больше похож на взлом, который использует тот факт, что все браузеры возвращаются к текущей схеме страницы, когда не уверены, что использовать (недавнее открытие). Тем не менее, я использую и защищаю URL-адреса без схемы, но также признаю, откуда взялись стандарты. Теперь, когда URL-адреса без схемы настолько распространены и полезны, они могут стать стандартными. Но первоначальное намерение состояло в том, чтобы все URL-адреса имели схему. Список схем намного длиннее, чем просто http / https, и URL-адреса можно использовать за пределами Интернета.
3. Я знаю о других схемах, но этот вопрос находится в браузере, поэтому кто-нибудь подвергнет себя ошибкам, вызванным попыткой доступа
http
изhttps
схемы?
Ответ №3:
Следующая функция загружает другой документ в тело документа. URL нового документа должен находиться в том же домене, которыйhttp://www.mydomain.com / в вашем случае.
Вам нужно сохранить следующий скрипт в виде файла .js и поместить его туда, где должно быть размещено объявление.
function load(url) {
var req = null;
if (window.XMLHttpRequest) {
req = new window.XMLHttpRequest();
}
else if (window.ActiveXObject) { //fallback
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) { }
}
}
if (req) {
req.open("GET", url, false);
req.send(null);
return req.responseText;
}
}
document.write(load("http://www.mydomain.com/passback.php"));