четверг, 17 мая 2012 г.

Script: Popup по центру экрана

Как поставить кнопки Facebook/Twitter/Google со своими иконками? Берём и ставим a с соответствующими href:

Twitter:
https://twitter.com/intent/tweet?url={PageUrl}&text={PageUrl}

Показываеть Twitter как blank - не надо. Если вставить сакральную мантру:

!function(d, s, id)
< script type="text/javascript" >
{ 
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id))
  {
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs); 
 } 
} (document, "script", "twitter-wjs");
< /script >
< script type="text/javascript" src="//platform.twitter.com/widgets.js" >< /script >

 то он сам всё найдёт и откроет. Попытаешься повесить скрипт - начнёт показывать 2 окна.

Facebook:
http://www.facebook.com/sharer.php?t={PageTitle}&u={PageUrl}

По необъяснимой причине он не видит PageTitle, если запускать с локального сервера.

Google Share (не путать с Google +1!):
https://plus.google.com/share?url={PageUrl}

Pinterest:
http://pinterest.com/pin/create/button/?url={PageUrl}&media={PageImage}&description={PageTitle}

А открывать это надо через _blank и по центру экрана:

function PopupCenter(pageURL, title, w, h) {
   var left = (screen.width / 2) - (w / 2);
   var top = (screen.height / 2) - (h / 2);
   var targetWin = window.open(pageURL, title, 'menubar=no, toolbar=no, resizable=yes, scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
} 

Функцию для открывания окна взял у Нимы.

И ещё - если во втором параметре window.open будет пробел, Internet Explorer его не откроет. Такие дела.

2 комментария:

  1. Ответы
    1. Можно - есть и другие хорошие сервисы. Но заказчик хотел именно кнопочки.

      Удалить