• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
{سوال}خطای document.body is null و body is not defined
#1
هو،
سلام علیکم،
این دو خطا مربوط به جاوا اسکریپت هستش،تا حالا دقت نکرده بودم!!
البته مربوط به کد این تاپیکه:
http://forum.iranphp.org/Thread-%D8%B3%D...9%87%D8%9F
اولی،یعنی:
کد:
body is null
موقعی ظاهر شد که:
کد:
document.body.appendChild("test_img");
یه سرچی زدم،یه جا دیدم گفته بودن باید بذاری Body لود شه،که قاعدتا اینجوری نوشتم:
کد:
document.body.onload=function(){ /*some code here! */};
که این خطا رو میده:
کد:
document.body is null
Smile
یا زهرا س

اللهم صل علی محمد و آل محمد و عجل فرجهم

افلاطون را گفتند چرا هرگز غمگین نمیشوی؟
گفت :دل برآنچه نمی ماند،نمی بندم.
  پاسخ
تشکر شده توسط :
#2
هل من ناصر؟

اللهم صل علی محمد و آل محمد و عجل فرجهم

افلاطون را گفتند چرا هرگز غمگین نمیشوی؟
گفت :دل برآنچه نمی ماند،نمی بندم.
  پاسخ
تشکر شده توسط :
#3
چرا توی خود تگ body نمیذاریش ؟
کد:
<body onload="func()">
  پاسخ
تشکر شده توسط : Goback
#4
(۱۳۹۰ اردیبهشت ۲۹, ۰۵:۰۸ ب.ظ)Bojbaj نوشته: چرا توی خود تگ body نمیذاریش ؟
کد:
<body onload="func()">
ممنون Bojbaj جان Heart ولی اینی که میگی برابر با همینه دیگه:
کد:
document.body.onload=function(){ /*some code here! */};
ضمن اینکه از اینی که گفتی استفاده نشه بهتره،چون ساختار جاوااسریپت رو تو کد صفحه هم جا میذاره،در صورتی که کد جاوااسکریپت مستقل باشه بهتره.

اللهم صل علی محمد و آل محمد و عجل فرجهم

افلاطون را گفتند چرا هرگز غمگین نمیشوی؟
گفت :دل برآنچه نمی ماند،نمی بندم.
  پاسخ
تشکر شده توسط :
#5
منم چون همونه گفتم دیگه Big GrinBig GrinBig Grin
بهتره ولی واجب نیستش که !!!!!!!!!!!!!
آخه تا یه چیز لود نشه فکر نکنم همینجوری بتونی براش فانکشن بسازی !
البته با jQuery میدونم که میشه ولی همینجوری بدون فریمورک نمیدونم چجوریه !
اگه پیدا کردم حتما برات مینویسم ! Heart
یافتم :دی Big Grin
کد پی‌اچ‌پی:
<script>
function 
init() {
  
// quit if this function has already been called
  
if (arguments.callee.done) return;

  
// flag this function so we don't do the same thing twice
  
arguments.callee.done true;

  
// kill the timer
  
if (_timerclearInterval(_timer);

  
// do stuff
  // کد ها رو اینجا بنویس
  
alert('Loaded');

};

/* for Mozilla/Opera9 */
if (document.addEventListener) {
  
document.addEventListener("DOMContentLoaded"initfalse);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
  document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
  var script = document.getElementById("__ie_onload");
  script.onreadystatechange = function() {
    if (this.readyState == "complete") {
      init(); // call the onload handler
    }
  };
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
  
var _timer setInterval(function() {
    if (/
loaded|complete/.test(document.readyState)) {
      
init(); // call the onload handler
    
}
  }, 
10);
}

/* for other browsers */
document.body.onload init;

</
script

البته با window هم جواب میده انگار ! Blush
اگه فقط گیر ندی که حتما روی body باشه این جواب میده . :دی
اینو امتحان کن !!!!
کد:
window.onload = function(){alert('Loaded')};
عجب سر کاری رفتما Exclamation
  پاسخ
تشکر شده توسط : Goback


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان