2015-11-23 2 views
0

У меня есть webapp, написанный в .js (без jQuery), который меняет название документа в зависимости от того, что в данный момент отображается на экране. Это отлично работает на настольных и мобильных браузерах, за исключением того, что это не в браузере WeChat в iOS (но пока не тестировалось в WeChat на Android).Как динамически изменить заголовок документа в JS, так что браузер WeChat обнаружит его

Базовый код документа изменение название:

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

IOS Safari, Android Chrome, и настольные браузеры, конечно, все будет отражать изменение названия. Однако, когда этот webapp загружен в WeChat, он показывает только заголовок, который задан в заголовке html.

Я попытался не устанавливать тег в заголовке вообще, но в этом случае WeChat вообще не имеет названия.

Если у кого-то есть опыт работы с WeChat и можно сказать, есть ли способ заставить его распознавать динамически измененный заголовок документа (без нарушения целостности webapp в отдельные файлы html, который действительно является последним вариантом, если ничего не работает ...) , Буду премного благодарен!

При проверке информации навигатора на iOS в нем используется Safari. Тем не менее, он не имеет на 100% такого же поведения, как тот же автономный браузер ...

Заранее благодарен!

P.S.

Я тестировал его на WeChat на Android, и он работал. Так что вопрос на WeChat только на iOS.

Я подозреваю, что это ошибка в WeChat для iOS, но если у кого-то может быть некоторое обходное решение, было бы здорово узнать!

ответ

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

или

document.title = 'test'; 
+0

Вопрос конкретно говорит «нет JQuery». –

+0

@Sebin Simon, спасибо за быстрый ответ, но я четко заявил, что я использую document.title = что-то, и что он не работает в WeChat на iOS и что я ищу решение, которое обманет WeChat в обновлении документа заглавие. – Sinisa

0

Вы должны использовать эту JS-SDK вещь официально выпущенный WeChat.

Вы загружаете файл JS на странице вы хотите открыть в WeChat приложение, и сконфигурировать его с AppID и подписью, то вы можете использовать API в ваших JS, как это:

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, работает очень хорошо.

+0

Это не ответ на мой вопрос :-) Я полностью осведомлен о JavaScript-интерфейсе WeChat JavaScript, и описанное выше решение устанавливает заголовок для совместного использования. Ничего общего с моим вопросом выше ... Я меняю название документа динамически, поэтому, когда пользователь видит другой контент в пределах одного веб-приложения, заголовок будет меняться. – Sinisa

+0

Чтобы уточнить: название документа отображается в центре верхней вкладки WeChat. Этот заголовок изначально загружается из .... Заголовок тега, однако может быть динамически изменен с помощью javascript - во всех браузерах. Но, к сожалению, WeChat на iOS не обновляет его, если изменения в javascript. Я могу подтвердить, что я тестировал его на Android WeChat, и он работал там. – 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); 

Это вызовет документ переосмысление и новое название будет отображаться.