Я думаю, да. Используя if (now < twitterDate)
, он оценивает значение if (now.valueOf()<twitterDate.valueOf())
. valueOf()
поставляет количество миллисекунд, переданных с 01.01.1970 00:00:00, поэтому сравнение этих двух чисел действительно.
проверить это как [
var then = new Date("Tue Jan 12 21:33:28 +0000 2010")
,now = new Date;
console.log(then.valueOf(),'::',now.valueOf(),'::',now<then);
//=> 1263332008000 :: 1352365105901 :: false
Вам нужно реализовать только один из них. Возможно, вы пытаетесь получить доступ к какому-либо офисному методу, прежде чем правильно инициализировать Office
. Как правило, мне нравится иметь загрузочный экран со спиннером и перемещаться с него только после инициализации офиса.
Office.initialize = function(reason) {
window.location.hash = 'apploaded';
}
Нет - вам просто нужно инициализировать его один раз, если вы не обновляете сервер. Пока вы остаетесь в контексте своего приложения и не обновляете все приложение, а просто перемещаетесь между компонентами, все будет в порядке.
Это может произойти, особенно если под локальным подразумевать, что вы делаете это без контекста Office (то есть вы не в клиенте). Как я обычно решаю эту проблему, никогда не получаю прямой доступ к объекту Office, но всегда через службу, которая в случае пропуска объекта Office или его подпроцедур не вызывает сбоев. Поэтому вместо
// calling directly in some component
office.context.mailbox.item.to.getAsync
я бы сделал
OfficeService.GetAsync() {
if (Office && Office.context && Office.context.mailbox && ...) {
// call real method
}
else {
console.log('Detected local mode - without office context')
// do a fake test operation instead of the real thing.
}
}
Посмотрите в файл функции . Это дает вам кнопку на ленте, которую вы можете щелкнуть и выполнить функцию в основном. Он по-прежнему будет загружать HTML-код в невидимый браузер, но в этом случае вы не получите панель задач. Это должно поддерживаться только в подмножестве клиентов, но не во всех.
Есть несколько способов сделать это, вы можете просто указать URL-адрес вашей записи на панели задач в манифесте на этот URL-адрес компонента. Например,
<SourceLocation DefaultValue="https://randommailaddin.org/component"/>
и сопоставьте маршрутизацию /component
с вашим компонентом, поэтому, когда пользователь нажимает кнопку, он загружает только этот компонент. Вам все еще нужно инициализировать офисный контекст, иначе ваша функция не будет работать.