0

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

基本文档标题更改代码:

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

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

我试过根本不在标题中设置标签,但在那种情况下,微信根本没有显示标题。

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

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

提前致谢!

附言

我已经在Android上的微信上测试过它并且它有效。所以问题只在iOS上的微信上。

我怀疑这是 iOS 版微信中的一个错误,但如果有人可能有一些解决方法,会很高兴知道!

4

3 回答 3

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);

这将触发文档重新评估,并会出现一个新标题。

于 2016-08-30T09:37:25.433 回答
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 共享操作,效果非常好。

于 2015-12-11T05:04:33.503 回答
-1
$(document).prop('title', 'test');

或者

document.title = 'test';
于 2015-11-23T08:07:27.413 回答