2011-03-16 100 views
0

兩行腳本的Zend公司用HeadScript() - > appendFile在IE(Internet Explorer)中

$this->headScript()->appendFile('/js/global.js', 'text/javascript'); 
    $this->headScript()->appendFile('http://zendbase/js/global.js', 'text/javascript'); 

火狐通過兩種方式運行腳本(絕對,根相對)

Internet Explorer中只運行第二個方法追加(絕對),這是與http。這不是一個好方法。 當我在瀏覽器中查看源代碼,我可以看到下面的行添加

<script type="text/javascript" src="/js/global.js"></script> 

但瀏覽器不讀。這實在超出我的理解。它很奇怪。如何使第一行在所有瀏覽器(包括IE)上使用文檔根路徑。 在視圖助手中是否有任何設置?或者是其他東西?

我可以用$ _ SERVER變量,使其動態絕對的,但我不希望使用絕對路徑。

任何想法。感謝提前:)

+0

沒有錯誤。我檢查了它在IE6和IE8。 – Developer 2011-03-17 08:43:32

+0

同樣的方式我Ajax調用也沒有在IE工作,如果我使用$阿賈克斯({ 網址:。「/客戶/添加/」這並不在IE瀏覽器,如果使用$阿賈克斯({ 網址:「HTTP:// zendbase /客戶端/ add /「它適用於每個瀏覽器?爲什麼可能是這樣的? – Developer 2011-03-17 08:59:45

+0

你能發佈一個示例頁面嗎? – Ashley 2011-03-17 09:08:13

回答

0

最後我修復了這個問題

我刪除了baseUrl(); ?>」 /從layout.phtml >,並添加下面的的application.ini resources.frontController.baseUrl =‘’行

0

的腳本肯定會與IE瀏覽器的相對路徑 - 我已經用它無數次......什麼是主機使用的是(例如www.example.com)?你的第二行代碼不應該工作,因爲你沒有一個有效的主機名 - http://zendbase不會解析任何東西。 zendbase是一個變量嗎?

+1

的鏈接取決於它可以是本地dns服務器中的本地域和/或已配置的/ etc/hosts – 2011-03-17 00:19:33

+0

「zendbase」是我在本地文件中設置的本地域。 – Developer 2011-03-17 08:34:31

+0

我猜如果你的應用程序從來沒有在你的計算機/你的公司之外訪問過,那麼這個主機名是有道理的......你是否嘗試過使用tld的主機名 - zendhost.com。也許IE瀏覽器與相對路徑和主機名稱相沖突? – robertlbolton 2011-03-17 21:11:24

0

對於相對靜態資源(圖片,JS,CSS,SWF等),你應該總是使用baseUrl幫手,如

$this->headScript() 
    ->appendFile($this->baseUrl('/js/global.js')); 

如果你能看到在源正確<script>標籤,那麼問題要麼路徑不正確(請參閱上面的baseUrl幫助程序),要麼您的JavaScript包含錯誤。

+0

我也使用過這個。但它不起作用。奇怪的是,當我使用它在IE中不起作用。如果我使用 它適用於所有瀏覽器。而zendbase是我在主機文件中設置的域名。這真的讓我發瘋。 – Developer 2011-03-17 08:35:58

+0

我可以在IE源視圖中看到腳本標記。並且我的腳本沒有錯,因爲它只包含一行警報(「hello word」); – Developer 2011-03-17 08:41:26