sellkingfly 发表于 2017-4-13 16:18:00

大家帮忙看下为什么内嵌IE无法打开js脚本网页 (已解决)

本帖最后由 sellkingfly 于 2017-4-14 15:12 编辑

http://d3.decembercafe.org/demo/rm/lesson8/Chart.html
在内嵌IE打开这个网页时出现如下错误:



是因为内嵌的IE无法运行JS脚本吗,要如何才能成功的运行js脚本。

用的是如下从论坛搜索到的程序#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ie.au3>

$oIE = ObjCreate("Shell.Explorer.1")


#Region ### START Koda GUI section ### Form=
$GUIMain = GUICreate("GUIMain", 800, 600, 0, 0)
GUICtrlCreateObj($oIE, 0, -0, 800, 600)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$EventObject=ObjEvent($oIE,"IEEvent_","DWebBrowserEvents")

$URL = "http://d3.decembercafe.org/demo/rm/lesson8/Chart.html"

$oIE.Navigate( $URL )

While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
      EndSwitch
WEnd

Func IEEvent_NewWindow($ppDisp,$Cancel)
      Local $o_Shell = ObjCreate("Shell.Application")
      Local $o_ShellWindows = $o_Shell.Windows(); collection of all ShellWindows (IE and File Explorer)
      For $i = $o_ShellWindows.Count-1 To 0 Step -1
                If $o_ShellWindows.item($i).LocationURL==$ppDisp Then
                        $o_ShellWindows.item($i).quit()
                EndIf
      Next
       $oIE.Navigate( $ppDisp )
EndFunc

229989799 发表于 2017-4-13 21:19:50

测试了一下,ie是兼容模式打不开
http://d3.decembercafe.org/demo/rm/lesson8/Chart.html
。。。用的是极速模式可以打开。。。
明显是网站问题,不是IE问题

dingcool 发表于 2017-4-13 21:36:56

把js下下来看看~~~~~~

chamlien 发表于 2017-4-14 01:12:40

本帖最后由 chamlien 于 2017-4-14 01:17 编辑

默认内置IE对该js不兼容,以下代码强制内嵌IE版本为本机最高版本IE (测试本地打开IE9以下都不兼容该js),当然客户端IE最高版本要10或11才行。
au3内嵌IE出现js错误,一般都是因为不兼容造成的。但是在IE浏览器打开,某个元素不兼容会console出来,而在au3上就弹窗提示js所在的错误行。
没仔细去看IE.au3内置函数,应该可以在IE.au3上找到解决方案。但个人认为,js文件不兼容,本身应该就是写该js的人没有做好兼容性检查,所以不是au3的错。


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ie.au3>
#include <process.au3>

Local $regValue = "1"
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", _ProcessGetName(@AutoItPID), "REG_DWORD", $regValue)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", _ProcessGetName(@AutoItPID), "REG_DWORD", $regValue)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Wow64\32Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", _ProcessGetName(@AutoItPID), "REG_DWORD", $regValue)

$oIE = ObjCreate("Shell.Explorer.1")

#Region ### START Koda GUI section ### Form=
$GUIMain = GUICreate("GUIMain", 800, 600, 0, 0)
GUICtrlCreateObj($oIE, 0, -0, 800, 600)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$URL = "http://d3.decembercafe.org/demo/rm/lesson8/Chart.html"

$oIE.Navigate($URL)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
WEnd

1361739590 发表于 2017-4-14 10:36:26

楼上正解,内嵌IE默认的好像是ie7

sellkingfly 发表于 2017-4-14 15:10:47

回复 4# chamlien


多谢!多谢!
完美解决哈!
页: [1]
查看完整版本: 大家帮忙看下为什么内嵌IE无法打开js脚本网页 (已解决)