Skip to content

Commit

Permalink
Wait for page loading before execute evalJS.
Browse files Browse the repository at this point in the history
  • Loading branch information
n-yoda committed May 14, 2013
1 parent 4a3b67e commit 58edc9b
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions WebPlayerTemplates/unity-webview/unity-webview.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
var unityWebView =
{
loaded: [],

init : function (name) {
$containers = $('.webviewContainer');
if ($containers.size() === 0) {
$('<div class="webviewContainer" style="overflow:hidden; position:relative; width:100%; height:100%; top:-100%; pointer-events:none;"></div>')
.appendTo($('#unityPlayer'));
}
var $last = $containers.last();
var $last = $('.webviewContainer:last');
var clonedTop = parseInt($last.css('top')) - 100;
var $clone = $last.clone().insertAfter($last).css('top', clonedTop + '%');
var $iframe =
$('<iframe style="position:relative; width:100%; height100%; border-style:none; display:none; pointer-events:auto;"></iframe>')
.attr('id', 'webview_' + name)
.appendTo($last)
.load(function () {
$(this).attr('loaded', 'true');
var contents = $(this).contents();
var w = this.contentWindow;
var w = $(this)[0].contentWindow;
contents.find('a').click(function (e) {
var href = $.trim($(this).attr('href'));
if (href.substr(0, 6) === 'unity:') {
Expand All @@ -42,6 +45,10 @@ var unityWebView =
});
},

sendMessage: function (name, message) {
u.getUnity().SendMessage(name, "CallFromJS", message);
},

setMargins: function (name, left, top, right, bottom) {
var $player = $('#unityPlayer');
var width = $player.width();
Expand All @@ -67,11 +74,18 @@ var unityWebView =
},

loadURL: function(name, url) {
this.iframe(name)[0].contentWindow.location.replace(url);
this.iframe(name).attr('loaded', 'false')[0].contentWindow.location.replace(url);
},

evaluateJS: function (name, js) {
this.iframe(name)[0].contentWindow.eval(js);
$iframe = this.iframe(name);
if ($iframe.attr('loaded') === 'true') {
$iframe[0].contentWindow.eval(js);
} else {
$iframe.load(function(){
$(this)[0].contentWindow.eval(js);
});
}
},

destroy: function (name) {
Expand Down

0 comments on commit 58edc9b

Please sign in to comment.