llblh/wechat-jssdk

动态设置title什么原理?

imac8t opened this issue · 1 comments

求解~?

llblh commented
const setNativeTitle = (title) => {
  document.title = title;
  const mobile = navigator.userAgent.toLowerCase();
  if (/iphone|ipad|ipod/.test(mobile)) {
    const iframe = document.createElement('iframe');
    iframe.style.display = 'none';
    // iframe.setAttribute('src', '');
    const iframeCallback = () => {
      setTimeout(() => {
        iframe.removeEventListener('load', iframeCallback);
        document.body.removeChild(iframe);
      }, 0);
    };
    iframe.addEventListener('load', iframeCallback);
    document.body.appendChild(iframe);
  }
};

单页面情况下:
android 直接通过document.title修改;
ios 在页面初始化title后,不在监听 document.title的change事件,给页面加一个内容为空的iframe,随后立即删除iframe,会刷新title,达到修改的目的
最新版ios微信已经可以直接通过 document.title 修改标题了