2016-07-09 3 views
0

У меня проблемы с попытками поделиться страницей с параметрами на Facebook. Это код, я использую:Facebook Поделиться «глотанием» параметров или исчезает

function PopupCenter(url, title, w, h) { 
    var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left; 
    var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top; 
    var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width ; 
    var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; 
    var left = ((width/2) - (w/2)) + dualScreenLeft ; 
    var top = ((height/2) - (h/2)) + dualScreenTop ; 
    var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left); 
} 

и URL является:

https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2127.0.0.1%3A50846%2FIndex.html%3Faction%3DDO1%26param%3D4cf13a1311fe40afa401b25ef7fa0379f1f7c1930a04f8755d678474d0c30e0c 

, где на самом деле существует два параметра:

  1. действие = DO1 и
  2. param = 4cf13a1311fe40afa401b25ef7fa0379f1f7c1930a04f8755d678474d0c30e0c

Изначально я не кодировал общий URL (то есть использовал =, /, & символов), а часть работала, но параметры отсутствовали. Теперь, когда я ввожу кодированный URL, окно Facebook появляется, но сразу исчезает.

Может ли кто-нибудь сказать мне, как я могу обмениваться URL-адресами с параметрами без необходимости переключения на механизм распределения каналов?

Заранее спасибо.

+0

Почему вы хотите поделиться ссылкой localhost? это не имеет никакого смысла ... – luschn

+0

Я сейчас работаю в тестовой среде. Единственное, что я хочу увидеть прямо сейчас, это то, что ссылка, встроенная в сообщение общего доступа Facebook, верна. Как только он будет работать по мере необходимости, URL-адрес будет скорректирован на реальное значение. – FDavidov

+0

попробуйте использовать общедоступный URL, а не с localhost. вы не можете это проверить. – luschn

ответ

0

Я нашел решение с помощью метода encodeURIComponent, так что моя функция теперь:

function PopupCenter(url, title, w, h) { 
    var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left; 
    var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top; 
    var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width ; 
    var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; 
    var left = ((width/2) - (w/2)) + dualScreenLeft ; 
    var top = ((height/2) - (h/2)) + dualScreenTop ; 
    var newWindow = window.open(encodeURIComponent(url), title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left); 
}; 

и он работает как шарм !!