OpenURL and anchors
BlitzMax Forums/BlitzMax Beginners Area/OpenURL and anchors
| ||
I'm trying to open an HTML file with OpenURL, which works good. But now I want the HTML file to jump to a certain anchor, using the hash character. For instance this: OpenURL("data\helpfile.html#tutorial") It opens the html file, but the part from the hash character is missing. I've tried using Driver.OpenURL directly, but with no success. Is there something else I could try ? Edit: I found this for a workaround: It works, but I would still like to know what causes this problem, and if there is a better way to deal with it. |
| ||
It seems on Windows, ShellExecuteA() strips anything after # in file urls... strangly enough, it allows # in http urls ;) I found an alternate way of doing it, but there is probably a better way: Function OpenURL( url:String ) Local dev:String,anchor:String dev=url[..5].toLower() If dev<>"http:" And dev<>"file:" Local h:Int=url.find("#") If h>-1 anchor=url[h..] url=url[..h] EndIf Local f:String=RealPath(url) If FileType(f) url="file:"+f +anchor Else url="http:"+url+anchor EndIf ?Win32 Extern "Win32" Function ShellExecuteW:Int( hwnd:Int, op$w, file$w, params$w, dir$w, showdmd:Int) EndExtern Local params:String = "url.dll,FileProtocolHandler ~q" + url + "~q" ShellExecuteW( 0, "open", "rundll32.exe", params,Null, SW_SHOWNORMAL) ? EndIf EndFunction |
| ||
Ah, cool, it works on my PC. Yesterday, I tried using OpenURL on my Mac (ppc), but it didn't do anything. I used the system_ command instead, and it openend up an html file, but I didn't tried it with anchors yet. Thanks, grable |