Pass a Value to a WebView
Hi, everyone. I'm sure this is a simple example, but I've only spent a day learning Titanium; so I have much to learn. :)
I want to load a webView, and pass an html fragment to it. Something like this:
var webview = Titanium.UI.createWebView({
url : '../page.html'
});
webview.content = 'my static content';
var window = Titanium.UI.createWindow();
window.add(webview);
window.open({modal:true});
So this will correctly create the webView and load it into the new window. But, I can't seem to access that content variable from within page.html. I thought I could do Titanium.UI.currentWindow.content, but that doesn't work.
Any help? Thanks!
5 Answers
-
You can use the evalJS() function to execute Javascript code inside the webView.
var code = "document.getElementById('myDiv').innerText = 'custom html here';"; webView.evalJS(code);
-
The usual method advised in the past is to utilize:
https://developer.appcelerator.com/apidoc/mobile/1.1/Titanium.App.Properties
- MorningZ
-
Right, and I guess I could use that, but I was hoping for a more direct solution. I was under the impression that, as I long as I add properties directly to the webview, they'll be available to me from within it.
-
Using custom properties like you're trying to do should work, but try adding it to window instead of webview, so like this:
window.content = 'my static content';
Then you should be able to read it from your new window via Ti.UI.currentWindow.content
custom_properties.js and custom_properties_2.js examples in Kitchen Sink shows examples of how to use custom properties to pass data between windows.
-
These don't seem to be working for me. All I want is to create a webview, with a url of 'somepage.html', and from within it, have access to a variable from the JavaScript file that created it. I can obviously run JavaScript from within that html page, but I don't seem to have access to any of the variables from the window.