2016-02-10 95 views
2

是否有可能從onload方法返回值並將其賦值給JavaScript中的變量?我有多個值要從方法返回。我不想在HTML中打印(我知道如何打印),但我希望它分配給一個變量。從onload方法返回值並分配給變量

<html> 

<div id="screenCapture" onload="screenProperties()">Screen properties</div> 

<p id="sW"> <p> 

</body> 

<script type="text/javascript"> 
function screenProperties(){ 

    sW=screen.width; 
    sH=screen.height; 
    saW=screen.availWidth; 
    saC=screen.colorDepth; 
    pixelDepth=screen.pixelDepth; 

return "sw:"+sW+"sH:"+sH+"saW:"+saW+"saC:"+saC+"pixelDepth:"+pixelDepth; 

} 
alert(screenProperties()); 
</script> 

</html> 

是我的方法。在這裏,我想將返回的值賦給一個html側的變量。

+0

誰投下來,你有沒有這方面的任何解決方案的人? – Sanjay

回答

2

我的建議

var scP = { 
"sW":screen.width, 
"sH":screen.height, 
"saW":screen.availWidth, 
"saC":screen.colorDepth, 
"pixelDepth":screen.pixelDepth} 

現在的onload事件,你可以使用

scP.sW 

任何你需要的地方

例如:

var scP = { 
 
    "sW": screen.width    || "not available", 
 
    "sH": screen.height   || "not available", 
 
    "saW": screen.availWidth  || "not available", 
 
    "saC": screen.colorDepth  || "not available", 
 
    "pixelDepth": screen.pixelDepth|| "not available", 
 
    "bla": screen.bla    || "not available" 
 
} 
 

 
window.onload = function() { 
 
    // need window.onload to wait for sprops div to render 
 
    document.getElementById("sprops").innerHTML = JSON.stringify(scP); // all 
 
    document.getElementById("pd").innerHTML = scP.pixelDepth; 
 
    document.getElementById("sw").innerHTML = scP.sW; 
 
    document.getElementById("bla").innerHTML = scP.bla; 
 
}
<div id="sprops"></div><br/> 
 
<div> 
 
    sw: <span id="sw"></span>, 
 
    pd: <span id="pd"></span> 
 
    bla: <span id="bla"></span> 
 
</div>

+0

我們是否需要等待'window.onload'退出有效的'screen'對象屬性? – Rayon

+1

不,但我們需要window.onload來等待HTML呈現我們想要顯示的位置 – mplungjan

+0

我會用'DOMContentLoaded'去。無論如何,你的答案現在很有道理.. – Rayon

2

而不是使用onload事件的DIV(不能在所有的瀏覽器),使用windows

<script> 
    document.addEventListener("load", function(event) { 
    screenProperties(); 
    }); 
    var sW,sH,saW,saC,pixelDepth; 
    function screenProperties() 
    { 
    sW=screen.width; 
    sH=screen.height; 
    saW=screen.availWidth; 
    saC=screen.colorDepth; 
    pixelDepth=screen.pixelDepth; 
    } 
</script> 
+1

addEventListener也不適用於所有瀏覽器。 'window.onload'確實。你也可以寫代碼'document.addEventListener(「load」,screenProperties);' – mplungjan

+0

不需要調用方法從

Screen properties
Sanjay

+0

@Sanjay是不需要從div onload調用它,因爲事件可能根本不存在 – gurvinder372

相關問題