Before 2017r1 we would store temporary HTML files and images in the SpecialFolder.ApplicationData location, and then when using HTMLViewer.LoadPage we’d supply that as the RelativeTo folderitem. This works fine on Mac and has worked fine on Windows until the recent update. Now the images stored in that location simply won’t load.
What location should I be using for this situation with the new HTMLKit on Windows?
[quote=327145:@Tom Iwaniec]Before 2017r1 we would store temporary HTML files and images in the SpecialFolder.ApplicationData location, and then when using HTMLViewer.LoadPage we’d supply that as the RelativeTo folderitem. This works fine on Mac and has worked fine on Windows until the recent update. Now the images stored in that location simply won’t load.
What location should I be using for this situation with the new HTMLKit on Windows?
Thanks[/quote]
Does the local built in language reference show images ?
We just use SpecialFolder.Temporary and all the image urls are relative to the page (which happens to be there too)
I’ve switched to SpecialFolder.Temporary and it works fine on Mac but still not working on Windows 7 or 10. The page loads fine, but the images will not load at all.
I don’t have Xojo installed in any of the Windows machines (they just use remote debugger for testing). I’ll try to download it on one of those machines now.
I’m using HTMLViewer.LoadPage ( Source As String, RelativeTo As FolderItem ), supplying the source as a string and the RelativeTo folder item is a blank HTML page stored at User/AppData/Local/Temp/(App Name)/HTML/theHtmlFile.html
The images are stored in that location (within the HTML directory) on demand as PNG/JPG images before the page is loaded
The HTML source references the png/jpg files as being in the same folder such as <img src="thisImage.png">
If I save the exact HTML code to a file in that directory and then launch it in Firefox it will load the images without issue
It’s already set to webkit (I needed to use that for various reasons).
Just installed 2017r1 on the Windows 7 machine and it looks like the images in the local built in language reference aren’t loading either, but that actually seems to be happening on Mac too (for example, the warning icon for OLEObject.EventTriggered doesn’t load).
Are there any images that I could check on the Windows side? Not really sure what to do here but I can’t get any images to load (from CSS or directly referenced in the HTML) for anything on Windows.
if you want to include pictures you have to use absolute paths or URLs file:c:/path/file or https://domain/filename a better option is to include your graphics into HTML document as base64 binary code … gimme a second…
The whole point of using HTMLViewer.LoadPage ( Source As String, RelativeTo As FolderItem ) is so that you wouldn’t have to use absolute paths, that could lead to a large number of issues. I’m also not writing the actual HTML to disk, I’m loading it as the source string.
You don’t necessarily have to write it down to a file, but the images need to be relative to the FolderItem you pass as RelativeTo. I was confused the first time around, you must pass this RelativeToFolderItem as if it was the HTML file, not the enclosing dir with the images. Perhaps that’s the issue?
Looks like it’s a bug and you have to actually write the HTML to the file.
The images were correctly stored in the proper relativeTo location (since they always worked with previous versions). Writing the HTML to the dummy file and loading that (instead of loading the HTML string and using the HTML file as the RelativeTo file) seems to work on Mac and PC.
I’m having a secondary problem now where writing the page to disk and then attempting to load it won’t work (the page is around 26kb). I think the writing isn’t finishing before the load starts even though they’re in the same method and I’m not using any threads associated with this.