2012-10-05 110 views
2

我试图在通过Chrome扩展(chrome.tabs.create)创建的选项卡中使用LESS,但我收到了一个跨域错误(“NETWORK_ERR:XMLHttpRequest Exception 101”) ,指的是LESS JavaScript文件。我不清楚如何设置权限。将LESS JavaScript文件添加到“web_accessible_resources”似乎没有帮助。所有其他文件,如css和js文件都可以正常加载。看来我只从较少的来源收到此错误。有任何想法吗?在Chrome扩展中使用LESS

要解释我的设置多一点,少JavaScript文件和文件.LESS加载HTML文件是这样的:

<!DOCTYPE html> 
<html> 
<head> 
    <link rel="stylesheet/less" href="static/css/main.less"> 
    <script src="/static/js/jquery-1.8.2.min.js"></script> 
</head> 
<body> 
Whatever... 
</body> 
</html> 

此HTML文件被加载background.js像这样:

chrome.browserAction.onClicked.addListener(function() { 
    chrome.tabs.create({url: 'mypage.html'}) 
}); 

清单文件具有“选项卡”和“所有网址”的权限,并加载background.js。

回答

1

我不确定你在哪里包含客户端less.js编译器。另见:http://lesscss.org/#client-side-usage。 Less.js是一个客户端JavaScript。它似乎是从其他URL(域)加载less.js而不是你的main.less文件。这可以通过增加CORS来解决,请参阅:http://enable-cors.org/。在已安装home.less的域上,服务器应发送Access-Control-Allow-Origin:*标头。

less.js使用支持大多数现代浏览器的CORS的XMLHttpRequests加载较少的文件,请参阅http://caniuse.com/#search=cors。更多详细信息可在http://www.html5rocks.com/en/tutorials/cors/

0

开发使用本地文件夹中的less.js。

<link rel="stylesheet/less" type="text/css" href="styles.less" /> 
<script src="less.js" type="text/javascript"></script> 

for release使用任何少于lessc的编译器。