Изолированное выполнение Javascript в расширении Internet Explorer (BHO)

StackOverflow https://stackoverflow.com/questions/2029736

Вопрос

В Firefox есть песочница и evalInSandbox().Chrome использует изолированное выполнение в своих скриптах содержимого (они называют это изолированным выполнением).Я ищу то же самое в расширении браузера IE.

Я могу загрузить файл javascript, затем вызвать evalScript(), но код выполняется в той же среде, что и javascript, который существует на странице.Мне нужен способ запустить мою библиотеку (которая включает в себя jQuery и основана на нем) в изолированной среде, но при этом разрешить ей изменять DOM так, как если бы она была запущена на странице.

Jint выглядит многообещающе, но в настоящее время не может оценить jQuery.(Они могут разобрать это.)

Как я могу это сделать?

Это было полезно?

Решение

Похоже, с этим ты в затруднительном положении.

  • Некоторые сотрудники Microsoft говорят, что IE не предлагает такой функциональности
  • Некоторые, кто говорит, что им удалось это провернуть, держат это при себе и защищают как свой секретный соус
  • "Профессиональные" магазины расширений, то есть, когда к ним обращаются по поводу создания того, о чем вы говорите, отказываются от работы

Я действительно хотел бы, чтобы у меня были новости получше, но, похоже, потребуется маленькое чудо, чтобы достичь того, что вы ищете...или, может быть, много денег.:)

Вероятно, вам лучше всего будет найти одного из немногих, кто утверждает, что смог это сделать, и хорошо заплатить им, чтобы они поделились секретом или пересмотрели, почему вы действительно хотите того, чего хотите, и посмотрели, нельзя ли добиться этого другим способом.

Другие советы

Возможно, вам покажется целесообразным ознакомиться с веб-песочницей Microsoft в Live Labs:http://websandbox.livelabs.com/

Хотя он более полноценен и связан с мэшапами и тому подобным, он может указать вам правильное направление.

То, что вы ищете, - это движок ActiveScript (http://en.wikipedia.org/wiki/Active_Scripting)

Сейчас я не могу найти никаких полезных ссылок, MSDN содержит только определение интерфейсов (http://msdn.microsoft.com/en-us/library/ccd0zt2w (v= против 85).aspx) Попробуйте поискать в Google "Активные сценарии" (не "Сценарии действий"!)

Вам нужно реализовать интерфейс IActiveScriptHost в вашем расширении, создать объект «JScript», вызвать SetSite и передать свой объект host, затем вы можете загрузить свой js-код в этот движок и запустить его.

Этот метод довольно сложен из-за отсутствия документации о нем.Если вы все еще заинтересованы в этом, я могу прислать вам несколько примеров на C ++ / ATL.

Не могли бы вы немного подробнее рассказать о своих целях?

Я не думаю, что вы четко определили, чего пытаетесь достичь.Если ваш код имеет возможность изменять DOM страницы, то он эффективно является выполняется в контексте страницы.Он может создавать новые блоки скрипта для выполнения любого небезопасного или ненадежного действия, которое он мог бы выполнить, если бы работал в той же среде выполнения.

IE не предлагает функции для выполнения того, о чем вы просите, и я не уверен, что функции Firefox и Chrome работают так, как вы ожидаете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top