2013-07-24 37 views
0

的問題可以看出此頁面上簡碼的多個實例的工作。這個插件的目的是它提示用戶通過社交媒體分享你的網頁,如果他們這樣做,一個鏈接將出現,讓他們訪問受限制的內容。WordPress的撐着不與頁面(社會折現出版社)

實際上有兩個問題,但我不確定它們是否來自同一問題。

1)第一個問題是,我已經把頁面上的社交共享按鈕使用此簡碼兩次:

[social_sharing_discount index="2"] 

而且共享按鈕的第二個實例(實現頁面的底部)做不能正常工作。點擊Facebook和Twitter按鈕激活共享框,但共享後,「即時訪問」按鈕不會出現在共享按鈕下方,因爲它應該是。點擊時Google按鈕什麼也不做。我發現如果我刪除第一個共享按鈕實例(位於頁面頂部),那麼它們的第二個實例就開始工作,換句話說,如果頁面上有一個實例,它似乎只能正常工作一次。

2)第二個小得多的問題是,當點擊Google分享按鈕時,訪問按鈕出現在人員實際分享之前。

並與此援助將不勝感激。

回答

0

我發現問題的主要原因是由於插件主要建立在ID之間,因此需要在頁面中唯一。並且具有相同ID的多個實例會導致很多錯誤。

解決方案是重寫一些php和js以使用Classes而不是ID's。這允許插件的兩個實例在同一頁面上工作,從而解決了第一個問題。

谷歌之所以如此不準確,是因爲作者只是在彈出窗口中打開一個彈出窗口到谷歌分享頁面,這不允許我們看到JS事件,比如我們分享的時間。

另一方面,因爲twitter和facebook jssdk已加載到頁面中,所以我們知道確切的時刻,這些時刻之一已被共享,從而準確顯示即時訪問按鈕。

由於這個原因,插件的作者只是在猜測用戶何時可能共享。在這種情況下,作者猜測,當javascript onunload事件觸發時,邏輯上該用戶在谷歌上共享。現在,可以用多種方式觸發onunload事件,一種是用戶關閉彈出窗口,即關於用戶是否共享的最佳猜測場景。然而,當表單失去焦點時,onunload事件也會觸發,用戶會瀏覽某種方式或鏈接被點擊。

此外,onunload事件只在IE,FF和Safari中正確支持,而不是Chrome和Opera。最後哪個在不同的瀏覽器中給出了不同的行爲。

所有這些都會導致不可預測的行爲,例如您注意到的情況。

一個更好的解決方案是谷歌有一個爲谷歌加分享的jssdk,讓我們在飛行中創建一個分享框,但是它現在缺乏這種功能。