Просто мольба о помощи, уже на недели счет пошел, как бьюсь с одной задачей.
Свел кратко вот к чему: через DOM-модель нужно запустить в компоненте TWebBrouser html-код, включающий вызов скрипта из файла *.js, лежащего на диске, в той-же папке.
Зачем именно так - вопрос отдельный, для работы оффлайн с картами через OpenLayers, если кому интересно.
Пример:
Код:
var
HTMLStr: AnsiString;
OL_Val: OleVariant;
HTMLWindow_Main: IHTMLWindow2;
v: Variant;
HTMLDocument: IHTMLDocument2;
HTMLStr:= '<html>' + #13#10 +
' <head> ' + #13#10 +
' <body>' + #13#10 +
' <img src="e:\COOP\FOR_OFFER_WEBMAP\ex_openlayers\marker-green.png" alt="HTML" width="50" height="50" />' + #13#10 +
' <script type="text/javascript" charset="UTF-8" src="file:///e:\COOP\FOR_OFFER_WEBMAP\ex_openlayers\OL.js">
</script>' + #13#10 +
' <script type="text/javascript">' + #13#10 +
' var x; ' + #13#10 +
' x = MyInit(); ' + #13#10 +
' document.writeln(x);' + #13#10 +
' </script>' + #13#10 +
' <p> --- </p> ' + #13#10 +
' </body> ' + #13#10 +
' </head> ' + #13#10 +
'</html>';
HTMLDocument:=EmbeddedWB1.Document as IHTMLDocument2;
v:=VarArrayCreate([0, 0], varVariant);
v[0]:=HTMLStr;
HTMLDocument.charset:= 'UTF-8';
HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
HTMLDocument.Close;
OL_Val:=EmbeddedWB1.Document;
OL_Val:=OL_Val.parentWindow;
edZoom.Text:=OL_Val.x;
Текст OL.js:
var myVar;
function MyInit () {
myVar=55;
return myVar;
};
Так вот не читает он этот файл OL.js вообще:
"символ 1, строка 1, ошибка - недопустимый знак, код 0, URL: file:///e:\.../OL.js". При этом картинку и текст через теги показывает.
А IE, как и другие браузеры выполняет нормально! И методом Navigate тот же TWebBrouser показывает нормально! Только вот, это бесполезно, т.к. нужно далее обмениваться переменными со страничкой, т.с.
Специально ввел сохранение строки с html-кодом в файл, открываю его браузером - все норм. Да и д.б. норм., стандартнейшая операция.
Пробовал:
- TWebBrouser и ТEmbeddedWebBrouser;
- разные кодировки файла и задание их в коде, создание ".htaccess.txt";
- Win7 и WinХР, IE9..6.
