如何在JS中动态更改文档标题,以便微信浏览器检测到它

时间:2015-11-23 08:03:29

标签: javascript html5 dom title wechat

我有一个用.js(没有jQuery)编写的webapp,它根据屏幕上当前可见的内容更改文档标题。这在桌面和移动浏览器上运行良好,除了它不在iOS下的微信浏览器中(虽然尚未在Android上的WeChat中测试过)。

基本文件标题更改代码:

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

iOS Safari,Android Chrome和桌面浏览器当然都会反映出标题的变化。但是,当这个webapp加载到微信中时,它只显示在html标题中设置的标题。

我已经尝试过根本不在标题中设置标签,但在这种情况下,微信根本没有标题。

如果有人有使用微信的经验,并且可以告诉我是否有办法让它识别动态更改的文档标题(不会将整个webapp分成单独的html文件,这是真正的最后选择,如果没有其他工作......),我很感激!

在检查导航信息时,在iOS上它使用Safari。但是,它与同一个独立浏览器没有100%相同的行为......

提前致谢!

P.S。

我在Android上的WeChat上测试了它并且它有效。因此问题仅出现在iOS上的微信上。

我怀疑这是iOS的微信中的一个错误,但如果有人可能有一些解决方法,那就太棒了!

3 个答案:

答案 0 :(得分: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);

这将触发文档重新评估,并显示新标题。

答案 1 :(得分: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 } });

我们已经使用此策略动态自定义我们的Web视图共享操作,因为此SDK已发布,效果非常好。

答案 2 :(得分:-1)

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

document.title = 'test';