2015-11-23 39 views
0

我有一個以.js(沒有jQuery)編寫的webapp,根據屏幕上當前可見的內容改變文檔標題。這在桌面和移動瀏覽器上效果很好,除非它不在iOS中的微信(WeChat)瀏覽器中(儘管如此,還未在Android上的微信中測試過)。如何在JS中動態更改文檔標題,微信瀏覽器會檢測到它

基本文檔標題變化代碼:當然,所有的

MyNamespace.setDocTitle = function(v) 
{ 
    document.title = v; 
} 

iOS的Safari瀏覽器,Android的Chrome和桌面瀏覽器將反映標題的變化。但是,當這個webapp被加載到微信時,它只顯示在html標題中設置的標題。

我試過了,不要在標頭中設置標籤,但在這種情況下,微信根本沒有顯示標題。

如果任何人有使用微信的經驗,並且可以告訴我是否有辦法讓它識別動態更改的文檔標題(如果沒有其他作品可以將整個web應用程序分解爲單獨的html文件,這實際上是最後的選擇) , 我會很感激!

當檢查導航信息時,在iOS上它使用Safari。然而,它沒有100%相同的行爲作爲相同的獨立瀏覽器...

在此先感謝!

P.S.

我已經在Android上的微信上測試過它,它工作。所以問題僅限於iOS上的微信。

我懷疑這是iOS版微信中的一個bug,但是如果有人可能有一些解決方法,那該多好啊!

回答

-1
$(document).prop('title', 'test'); 

document.title = 'test'; 
+0

這個問題具體說「沒有Jquery」。 –

+0

@Sebin Simon,感謝您的快速回復,但我已經明確指出我使用document.title = something,並且它在iOS上的WeChat中不起作用,而且我正在尋找一種解決方案,它將欺騙WeChat進入更新文檔標題。 – Sinisa

0

你應該使用這個JS-SDK事情通過微信正式發佈。

你加載你想打開微信的應用程序頁面上的js文件,並與您的appid和簽名配置它,那麼你可以在你的JS使用的API是這樣的:

wx.onMenuShareTimeline({ title: '', // Sharing title link: '', // Sharing link imgUrl: '', // Sharing image URL success: function() { // Callback function executed after a user confirms sharing }, cancel: function() { // Callback function executed after a user cancels sharing } });

我們自從這個SDK發佈以來,我們使用這個策略來動態定製我們的webviews共享操作,效果非常好。

+0

這不是我的問題的答案:-)我完全瞭解WeChat JavaScript API - 並且上面描述的是設置共享標題。與上面的問題無關......我正在動態更改文檔標題,因此當用戶在同一個webapp中看到不同的內容時,標題將會改變。 – Sinisa

+0

澄清:文檔標題顯示在微信頂部標籤的中心。此標題最初從加載....標頭標記,但可以動態更改使用JavaScript - 在所有瀏覽器中。但不幸的是,如果在javascript中更改,iOS上的微信不會更新它。我可以確認我已經在Android微信上進行過測試,並且在那裏工作。 – Sinisa

1

對於後人:

window.title = '...'; 
// ... 
var iframe = document.createElement('iframe'); 
iframe.style.display = "none"; 
// load anything small from your domain 
iframe.setAttribute("src", "//example.com/favicon.ico"); 
var _l = function() { 
    window.setTimeout(function() { 
     iframe.removeEventListener('load', _l); 
     document.body.removeChild(iframe); 
    }); 
}; 
iframe.addEventListener('load', _l); 
document.body.appendChild(iframe); 

這將觸發文件的重新評估和新的標題將出現。