Hi,
ich arbeite seit neuestem mit deiner UDF "FF.au3" um Firefox zu steuern.
Übrigens eine tolle UDF Danke dafür
Beim experimentieren ist mir dabei ein Bug aufgefallen.
Sobald im HTML-Quellcode ein Hochkomma (') vorkommt versagt die Funktion _FFWriteHTML.
Hier ein einfaches Beispiel, das das Problem verdeutlicht.
Beispiel _FFWriteHTML
#include <FF.au3>
_FFStart()
_FFWriteHTML("<head><title>Hello World!</title></head><body><div>Hello World!</div></body>", "html")
MsgBox(64, "Pause!", "Weiter?")
_FFWriteHTML("<head><title>Hello World!</title></head><body><div>Hello'World!</div></body>", "html")
Exit
Die Konsolenausgabe sieht hier folgendermaßen aus.
Konsolenausgabe
__FFStartProcess: ""D:\Programme\Mozilla Firefox\firefox.exe" -new-window "about:blank" -repl 4242
_FFConnect: OS: WIN_XP WIN32_NT 2600 Service Pack 3
_FFConnect: AutoIt: 3.3.6.1
_FFConnect: FF.au3: 0.6.0.1b-5
_FFConnect: IP: 127.0.0.1
_FFConnect: Port: 4242
_FFConnect: Delay: 2ms
_FFConnect: Socket: 1648
_FFConnect: Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729; .NET4.0E)
__FFSendJavaScripts: Sending functions to FireFox .......... done
_FFLoadWait: . loaded in 75ms
__FFSend: try{content.document.documentElement.innerHTML='<head><title>Hello World!</title></head><body><div>Hello World!</div></body>';}catch(e){'_FFCmd_Err';};
__FFRecv: <head><title>Hello World!</title></head><body><div>Hello World!</div></body>
__FFSend: try{content.document.documentElement.innerHTML='<head><title>Hello World!</title></head><body><div>Hello'World!</div></body>';}catch(e){'_FFCmd_Err';};
__FFSend: ;
__FFRecv:
__FFWaitForRepl ==> Error return value: MozRepl ....>
+>17:59:02 AutoIT3.exe ended.rc:0
>Exit code: 0 Time: 31.638
Das Problem wird vom folgendem String in der "FF.au3" verursacht.
[autoit]
$sCommand = StringFormat("content.document.%s.innerHTML='" & $sHTML & "';", $sCommand)
Hier wird, so wie es sein soll, $sHTML von Hochkommas umschloßen, damit man $sHTML als String, der Eigenschaft innerHTML zuweisen kann.
Da nun $sHTML wiederum selbst ein Hochkomma (') enthält, wird die Zuweisung wesentlich früher beendet als geplant.
Um das Problem zu beseitigen muß also in $sHTML jedes Hochkomma (') maskiert werden.
Gruß
CD
PS:
Falls das Problem bekannt ist, dann entschuldige ich mich für den neuen Thread.
Hab zwar die Suche kurz überflogen aber nichts vergleichbares Gefunden.