#javascript
#javascript
Вопрос:
Я создаю некоторую ссылку-приманку, которая в основном представляет собой размещенный извне файл .js, который люди могут размещать на своих веб-сайтах. Я хотел бы, чтобы сопровождающая HTML-ссылка сопровождала виджет, однако я хотел бы, чтобы виджет определял, присутствует ли ссылка. т.Е.
amp;<script src="http://domain.com/foo.js">amp;</script><br />
by amp;<a href="http://domain.com">My Siteamp;</a> amp;<-- detect this is here
Проблема в том, что я не знаю, на каких сайтах будет размещен мой виджет.
есть идеи?
Комментарии:
1. Эта ссылка может быть легко скрыта с помощью
display:none
. Если вы действительно хотите «ссылку-приманку», подумайте о добавлении небольшой ссылки рядом с активной частью вашего кода. Если кому-то нравится ваша функция, они могут посетить ваш сайт.
Ответ №1:
var l = document.links, myLinkTest = false;
var linkcount = l.length;
while(linkcount > 0 amp;amp; !myLinkTest) {
if(l[linkcount-1].href == "http://domain.com"){myLinkTest = true;}
linkcount --;
}
var widget = function(){
if(myLinkTest){
//do stuff
}
}();
Протестируйте все ссылки на странице и запустите функцию скрипта только в том случае, если ваша ссылка найдена?
Комментарии:
1. попробовал это и изменил dostuff на document.write(‘это работает’); но он не сообщает об успехе.
Ответ №2:
Вы можете просмотреть все элементы привязки и убедиться, что там есть привязка с этим href, или проверить по другим критериям.
var isMyLinkPresent = function () {
var anchors = document.getElementsByTagName('a');
for (i = 0; i < anchors.length; i ) {
if(anchors[i].attr('href') === "http://domain.com") {
return true;
}
};
return false;
}
//in case you want to notify you own server of the presence, this will send a request to your server for picking up which site actually has the link
(function () {
if (isMyLinkPresent()) {
var script = document.createElement('script');
script.attr('src', 'http://domain.com/tellmewhichsitehasit?site=' window.location.host)
document.head.appenChild(script);
}
})();
В качестве альтернативы вы могли бы поместить ссылку самостоятельно с помощью javascript, но тогда у вас должен быть какой-то API, который будет использовать веб-мастер. Например, в атрибуте ‘src’ скрипта вы можете добавить параметры, которые затем можно выбрать при генерации javascript или интерпретировать его, посмотрев на src.
Комментарии:
1. привет, я попробовал это и удалил биты ‘на случай, если вы хотите …’ и изменил return true; на document.write (‘works’); но он не сообщает об успехе… какие-либо советы?
2. можете ли вы привести пример HTML-документа, с которым вы его выполняете?