2011-01-25 22 views
4

我寫文本使用document.write的Chrome擴展頁面,但沒有應用相關的自定義CSS:CSS沒有被應用到文件撰寫文本

<!DOCTYPE html> 
<html> 
<head> 
    <title>TITLE GOES HERE</title> 
    <link rel="stylesheet" href="css/popup.css" type="text/css" /> 
</head> 

<body> 
    <script type="text/javascript"> 
     ... 
     function showFolder(folder) { 
      console.debug('FOLDER: '+folder.title); 
      document.write('<p>'+folder.title+'<br></p>'); 
     } 
    </script> 

</body> 
</html> 

的CSS很簡單,只是爲了調試:

p { 
color: red; 
} 

我可以得到它,如果我把功能showFolder裏面的樣式表的鏈接工作,但不能做到這一點的正確方法。我正在學習jscript/CSS,所以答案可能是補救措施。問題在jscript,CSS或兩者?

+1

你在哪裏調用`showFolder`?你有另一個樣式表可能會衝突並覆蓋樣式嗎?我測試了你在這裏的功能,如果你在函數聲明之後調用`showFolder`而不是``` – 2011-01-25 03:45:23

+0

showFolder從另一個函數(...)中調用,它讀取Chrome書籤中的文件夾(基本上是'讀取書籤樹' - >'如果item是文件夾,則通過showFolder顯示文件夾的名稱)。只是爲了踢我移動showFolder聲明之前......功能,但問題依然存在。 – hideyho 2011-01-25 04:11:32

回答

3

使用innerHTML。

<div id="towrite"></div> 

那麼您可以在寫這樣的:

div=document.getElementById('towrite'); 
div.innerHTML = '<p>'+folder.title+'<br></p>'; 
0

我不是JavaScript的高手......我主要使用jQuery ..但是試試這個,一種是有道理的:

<!DOCTYPE html> 

名稱在這兒

<script type="text/javascript"> 
    ... 
    function showFolder(folder) { 
     console.debug('FOLDER: '+folder.title); 
     document.write('<p>'+folder.title+'<br></p>'); 
    } 
</script> 

<link rel="stylesheet" href="css/popup.css" type="text/css" /> 

編輯:

所以上面沒有工作,但我只是想了解另一種解決方案。你什麼時候真的在調用這個函數?嘗試把它放在<body onLoad="functionnamehere()">

不知道,如果可行,但試試看。

+0

感謝您的回覆 - 將樣式錶鏈接移出頭部並在腳本無法工作之後。 – hideyho 2011-01-25 03:43:23

+0

再次檢查我的帖子 – criticerz 2011-01-25 15:03:18

0

如果您運行document.write()的頁面加載完畢後(可能是直接從腳本的頁面上打電話給你showFolder調用之前),那麼文本將按照您的預期寫入文檔。

但是,如果在加載頁面後調用document.write,就像在事件處理程序中一樣,您將會編寫一個全新的頁面。這通常不是你想要的。

取而代之,按照Zoltan的建議設置空div的innerHTML屬性。