2015-11-09 68 views
0

我正在使用CKEditor 4.4.5及其插件樣式表解析器4.4,但我從樣式下拉列表中獲得空列表。CKEditor樣式表解析器

爲了使我的問題更容易理解,請試試這個代碼(下載從示例站點:http://sdk.ckeditor.com/samples/styles.html):

<!DOCTYPE html> 
<html> 

<head> 
    <meta charset="utf-8"> 
    <meta name="robots" content="noindex, nofollow"> 
    <title>Stylesheet Parser plugin</title> 
    <script src="http://cdn.ckeditor.com/4.5.2/standard-all/ckeditor.js"></script> 
</head> 

<body> 

    <textarea cols="80" id="editor2" name="editor2" rows="10" >&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt; 
    </textarea> 

    <script> 
     CKEDITOR.replace('editor2', { 
      extraPlugins: 'stylesheetparser', 
      height: 300, 

      // Custom stylesheet for editor content. 
      contentsCss: [ 'http://sdk.ckeditor.com/samples/assets/stylesheetparser/stylesheetparser.css' ], 

      // Do not load the default Styles configuration. 
      stylesSet: [] 

     }); 
    </script> 
</body> 

</html> 

它並沒有真正的工作。但該網站上的示例運行良好。 我還發現另一個示例網站: http://ckeditor.com/ckeditor_4.3_beta/samples/plugins/stylesheetparser/stylesheetparser.html

我試圖複製此演示網站的所有源代碼,但沒有運氣。

其他人是否也有同樣的問題? 如何使上述代碼正常工作?它基本上使用CDN網站的源代碼,所以我不認爲源代碼的版本很重要。

+0

跨域請求?您從cdn.ckeditor.com拉取.js代碼,但嘗試從sdk.ckeditor.com加載css。無論如何,請檢查您的JS請求是否有錯誤/警告。 –

+0

控制檯中沒有錯誤。從sdk.ckeditor.com加載CSS是好的,因爲我認爲網站所有者將它設置爲允許跨域請求。另外,我已經嘗試使用我的本地CSS文件。相同的結果:空列表。 – Joey

回答

0

此問題是由跨域請求引起的。 CSS文件位於HTTP服務器中,我的應用程序正在運行一個端口號。所以他們被視爲跨域請求。

我也測試了本地文件中的HTML頁面和CSS文件。然而,file://...path在Chrome瀏覽器中仍被視爲跨域請求,但FF和IE可以正常工作。

當我在服務器上試過這個,它可以正常使用Chrome。不幸的是,似乎沒有辦法在Chrome和Firefox中進行跨域請求。

0

你應該試試這個版本:http://ckeditor.com/addon/stylesheetparser-fixed 官方插件有一些問題,因爲很久以前,但他們似乎並沒有打算修復它們。

+0

但是你使用跨域樣式表進行測試嗎?我不認爲這會起作用,我只是建議這個插件,因爲它在緩存和加載樣式表的時間有問題時有助於正常設置 – AlfonsoML

+0

我想我發現了這個問題。我現在使用了一個本地的css文件。它在IE和FireFox中工作正常,但在Chrome中無法使用。問題是在函數LoadStylesCSS(theDoc,skipSelectors,validSelectors)中。 Chrome中的Doc.styleSheets [i] .cssRules始終爲空。你在Chrome中遇到同樣的問題嗎? @AlfonsoML – Joey

+0

不,我沒有任何問題與Chrome。也許這是由於你安裝了一些擴展? – AlfonsoML