У меня есть некоторый код JScript (преобразованный из какого-то старого VBScript), который начинается так:
var Word = new ActiveXObject("Word.Basic");
Word.FileNew(); // opens new Word document
Word.Insert(IncorrectText);
Word.ToolsSpelling(); // opens spell check behind IE
Идея состоит в том, чтобы использовать проверку орфографии MS Word для использования в браузере, и она хорошо работает в XP, но в Windows 7 / IE 8 открывается флажок проверки орфографии ( этот вопрос говорит мне что проблема началась в Vista и, вероятно, связана с ОС, а не с браузером или с Office).
Итак, мой вопрос, как я могу вывести это окно на передний план? Важно отметить, что последняя строка, Word.ToolsSpelling();
, блокирует мой скрипт, поэтому все, что я делаю, должно быть до этого.
Я пробовал
var wshShell = new ActiveXObject("WScript.Shell");
wshShell.AppActivate("Document1 - Microsoft Word"); // or some other text
до вызова ToolsSpelling, но это ничего не делает (может быть, потому что документ Word на самом деле не раскрывается в этот момент?). Конечно, это будет работать только в том случае, если «Document1» уже не открыт, так что это сомнительная мысль для начала.
За этот ответ , я пытался использовать window.blur();
для размытия IE, но это будет работать, только если открыто только окно IE. Может быть, есть какой-нибудь способ, которым я могу перебрать все открытые окна и применить это?
SetForegroundWindow выглядело многообещающе, но я не знаю, как использовать его в JSript.
Есть идеи?
Примечание: разрешения браузера будут полностью открыты для этого сайта.
Обновление : Оказывается, если вы используете Word.Application
, проверка орфографии появляется впереди, как и должно быть. Только метод Word.Basic
имеет эту проблему (я не ожидаю знать, почему эта сторона вечности):
var wordApp = new ActiveXObject("Word.Application");
wordApp.Documents.Add();
wordDoc = wordApp.ActiveDocument;
... // safety checks before insertion
wordSelection.TypeText(IncorrectText);
wordDoc.CheckSpelling();
wordApp.Visible = false; // CheckSpelling makes the document visible