2014-06-20 25 views
1

从调用对象的onload构建一个值我正在做一个网站,我创建在体内的“经理”对象的onload:HTML/JS:在<body>

body id="real-world" onload="createARSim('ar-world','real-world','phone');"> 

createARSim(。 ..)会返回一个对象,其中包含很多有用的东西。其中之一是

var pageIndex 

它监视当前页面。

我想在网页的某处显示页码。目前,我将代码嵌入,这样的:

<script> onload.pageIndex.toString(); </script> 

的问题是,它抛出这个错误:

TypeError: onload.pageIndex is undefined 

而且我不知道该怎么办才好。构造函数中的js代码运行良好,但是我一旦完成构造函数的运行,就找不到任何方法来访问返回的对象。

编辑:

好吧,我想我可能知道为什么它不工作。首先,我需要使用Document.onload来调用我已经返回的onload对象。然而,更大的问题是onload是如何工作的 - 我无法调用onload内联元素,因为构造函数在运行内联JavaScript代码时并未实际执行(它会在所有内容加载后调用...)。

所以我不能把它放在内联。我想,我必须做一些聪明的编辑,从javascript到div我直接把它放进去。

+1

我不知道这段代码是否应该工作,但是..无论如何,是不是应该调用document.onload.pageIndex来代替? onload本身不应该是一个对象。 – briosheje

+0

好点。这解决了一个问题(我缺乏关于onload实际工作方式的知识),但现在它说document.onload为null。这是因为它在文档实际加载之前运行内联脚本(在主体完成加载时运行构造函数)? – user3760657

+0

实际上,document.onload,window.onload和body.onload应该在整个文档被加载后触发。但是,不要这样做,我宁愿在文档加载后使用函数createARSim。从onload中删除它,并在脚本上试试这个:'window.onload = function(){this.pageIndex = createARSim('ar-world','real-world','phone'); };'然后:'alert(window.pageIndex);'..但是我更熟悉使用jQuery,所以请尝试上面的脚本并告诉我是否发生了什么:)。编辑:实际上document.onload当解析HTML时触发 – briosheje

回答

0

您可以执行以下操作来解决这个问题

window.onload = function() { 
var pageIndex = createARSim('ar-world','real-world','phone').pageIndex; 
var textNode = document.createElement('text'); 
textNode.textContent = pageIndex; 
document.body.appendChild(textNode); 
} 

这追加的PageIndex身体。