У меня есть ссылка (на Потрясающий значке Font), который выглядит следующим образом:Twitter веб-Намерение всплывающего окна открытие дважды
<a href="https://twitter.com/intent/tweet?text=Some text about this link&url=http://some.site.co/wow/greatamp;via=toby1kenobi">
<span class="fa fa-twitter-square"></span>
</a>
, и я использую Фрагмент код JavaScript в разделе «Limited зависимостей» на this page, этой сразу после ссылки. Это единственное веб-намерение на странице.
Если я нажму ссылку, откроется всплывающее окно Twitter и исходная страница перейдет к тому же содержимому, отображаемому во всплывающем окне.
Я не могу понять, что я сделал неправильно - если я присоединяю другое событие к ссылке и вызываю preventDefault(), это останавливает дублирование, но я понимаю, что это не обязательно.
EDIT Вот код Твиттера:
(function() {
if (window.__twitterIntentHandler) return;
var intentRegex = /twitter\.com(\:\d{2,4})?\/intent\/(\w+)/,
windowOptions = 'scrollbars=yes,resizable=yes,toolbar=no,location=yes',
width = 550,
height = 420,
winHeight = screen.height,
winWidth = screen.width;
function handleIntent(e) {
e = e || window.event;
var target = e.target || e.srcElement,
m, left, top;
while (target && target.nodeName.toLowerCase() !== 'a') {
target = target.parentNode;
}
if (target && target.nodeName.toLowerCase() === 'a' && target.href) {
m = target.href.match(intentRegex);
if (m) {
left = Math.round((winWidth/2) - (width/2));
top = 0;
if (winHeight > height) {
top = Math.round((winHeight/2) - (height/2));
}
window.open(target.href, 'intent', windowOptions + ',width=' + width +
',height=' + height + ',left=' + left + ',top=' + top);
e.returnValue = false;
e.preventDefault && e.preventDefault();
}
}
}
if (document.addEventListener) {
document.addEventListener('click', handleIntent, false);
} else if (document.attachEvent) {
document.attachEvent('onclick', handleIntent);
}
window.__twitterIntentHandler = true;
}());
Он связывается с храповым событием документа (а не какие-либо анкеры), я не понимаю, почему это происходит не отменять навигацию по умолчанию. Кажется, он попал в «e.preventDefault & & e.preventDefault();» line ok.
показать нам полный код –
Sure вещь, см.выше – toby1kenobi