2012-12-30 32 views
0

我的名字是曼努埃爾,我是一名網頁設計專業的學生,​​並開始採取我的第一步網頁設計。最近,我試圖驗證「onload」和XHTML驗證的問題

這個網站:

http://accesosnormalizados.com

我使用W3C驗證,起初我發現了大約30個錯誤,並且能夠改正所有除一個,說:「沒有屬性

「onload」'。

顯然不支持XHTML onload標籤,並且我使用了使用onload的稱爲垂直菜單的Joomla擴展。這是一個免費的擴展,運行良好,但我發現它有一些錯誤,特別是在驗證網站時。

這是爲擴展PHP代碼:




    get('menutype', 'mainmenu'); 
    $qry = "SELECT id, name,parent, link,type,browserNav FROM #__menu WHERE menutype = '".$menutype."' AND published = 1 ORDER BY ordering"; 
    $database->setQuery($qry); 
    $rows = $database->loadObjectList(); 

    if(isset($GLOBALS['vertical_menu'])) $GLOBALS['vertical_menu']++; 
    else $GLOBALS['vertical_menu'] = 0; 

     function getMenuChildList($rows, $parentId) { 
      $childRows = array(); 
      foreach ($rows as $row) { 
       if ($row->parent == $parentId) { 
        $childRows[] = $row; 
       } 
      } 
      return $childRows; 
     } 

     function drawVerticalMenu($rows, $showsubcats, $parentId = 0) { 
      $categories = $showsubcats || !$parentId ? getMenuChildList($rows, $parentId) : array(); 
      if ($parentId) { 
       if (!count($categories)) { 
        echo ''; 
        return; 
       } else echo ''; 
       echo ''; 
      } else echo ''; 
      echo ''; 
      foreach ($categories as $category) { 
       $link = $category->link. (preg_match("/^http:\/\/|^https:\/\//",$category->link)? "" : '&Itemid='.$category->id); 
       $blank = $category->browserNav? ' target="_blank" ' : ' '; 
       echo 'id.'" class="menu">'.$category->name.' '; 
       drawVerticalMenu($rows, $showsubcats, $category->id); 
      } 
      echo ''; 
      if ($parentId && count($categories)) echo ''; 
     } 

    $document = &JFactory::getDocument(); 
    $document->addScript('https://ajax.googleapis.com/ajax/libs/dojo/1.5.0/dojo/dojo.xd.js'); 
    $document->addScript('modules/mod_vertical_menu/script/menu.js'); 
    $document->addStyleSheet('modules/mod_vertical_menu/style/menu.css'); 
    $document->addCustomTag(' 
    
    div#MenuContainer'.$GLOBALS['vertical_menu'].' table#VerticalMenu'.$GLOBALS['vertical_menu'].' { 
     width: '.$params->get('categorymenu_width', 150).'px; 
     opacity: '.$params->get('categorymenu_out', 0.8).'; 
     FILTER: progid:DXImageTransform.Microsoft.Alpha(Opacity='.($params->get('categorymenu_out', 0.8)*100).'); 
    } 
    
    '); 
    echo ''; 
    drawVerticalMenu($rows, $params->get('show_subcats', 1)); 

    echo 'get('categorymenu_out', 0.8).',over : '.$params->get('categorymenu_over', 1).',duration : '.$params->get('categorymenu_fade', 300).',id : '.$GLOBALS['vertical_menu'].',width : '.$params->get('categorymenu_width', 150).'});" alt=""/>'; 
    echo ''; 

    ?> 

的問題是在末端:




    echo ''; 
    drawVerticalMenu($rows, $params->get('show_subcats', 1)); 

    echo 'get('categorymenu_out', 0.8).',over : '.$params->get('categorymenu_over', 1).',duration : '.$params->get('categorymenu_fade', 300).',id : '.$GLOBALS['vertical_menu'].',width : '.$params->get('categorymenu_width', 150).'});" alt=""/>'; 
    echo ''; 

    ?> 

我認爲擴展使用onload事件來顯示子菜單,當用戶將鼠標指針移到它上面。

我想要的是用其他事件處理程序或XHTML支持的一些其他標籤替換onload,這與onload類似。

我會感激你的幫助......

+1

你的問題似乎混淆了在頁面加載和鼠標懸停觸發的JavaScript事件?添加HTML輸出以獲得更多清晰度 –

+1

@Shaun Hare:這是img的onload事件 –

+0

這是W3C Validator在嘗試驗證頁面時給我的錯誤。 http://validator.w3.org/check?uri=http%3A%2F%2Faccesosnormalizados。com%2F&charset =%28detect +自動%29&doctype =內聯&組= 0 單擊鏈接,您將在224行上看到錯誤。您將看到HTML輸出和問題所在。 – Domadis

回答

1

您可以刪除在onload屬性,然後添加一些簡單的JavaScript到您的網頁時,網頁加載完成運行某些功能。

這將是這個樣子:

<script> 
    window.onload=function(){ 
     new WW.VerticalMenu({out : 1,over : 1,duration : 300,id : 0,width : 180}); // example of one of the functions being run 
    }; 
</script> 

祝你學習

+0

嗨pzirkind, 非常感謝您的幫助。我可以使用你推薦給我的腳本修復這個問題。 – Domadis

0

它出現在源出來這樣的權利

<img src="/modules/mod_vertical_menu/images/center.gif" style="display:none" onload="new WW.VerticalMenu({out : 1,over : 1,duration : 300,id : 0,width : 180});" alt=""/> 

由於看起來像恕我直言,一個令人討厭實例化菜單的方法我會嘗試和鬆散該屬性完全通過刪除有問題的PHP回聲部分,而不是加載JavaScript來加載 ,因爲這是使用Dojo也許這將幫助 - 對不起,我不使用Dojo http://mail.dojotoolkit.org/pipermail/dojo-interest/2012-May/066106.html

所以PHP明智,這將是

echo '<img src="modules/mod_vertical_menu/images/center.gif" style="display:none" alt=""/>'; echo '</div>'; 

echo "<script>" ."javascript or dojo script here ".</script>" 

我甚至建議刪除的圖像,並使用的onload倡導的窗口下面如果你可以