Crossrider は最近、リソースから HTML で新しいタブを開く機能を導入しました。ただし、そのようなページは、HTML に埋め込まれた link タグや script タグを使用して他のリソース ファイルに直接アクセスすることはできません。
初期のリリースではありますが、HTML ページの機能の 1 つは、ページの準備が整うと実行されるcrossriderMain関数です。この初期リリースでは、この関数は次の Crossrider API をサポートしています: appAPI.db.async、appAPI.message、およびappAPI.request。
したがって、この初期のリリースでは、リソース CSS およびスクリプト ファイルをリソース HTML ページに直接追加する方法はありませんが、リソースを非同期ローカル データベースにロードし、それを HTML ページに適用することで問題を回避できます。標準のjQuery。例えば:
background.js :
appAPI.ready(function() {
// load resource file 'style.css' in to local database
appAPI.db.async.set('style-css', appAPI.resources.get('style.css'));
// load resource file 'script.js' in to local database
appAPI.db.async.set('script-js', appAPI.resources.get('script.js'));
// open resource html
appAPI.openURL({
resourcePath: "troubleShooter.html",
where: "tab",
focus: true
});
});
トラブルシューター.html :
<!DOCTYPE html>
<html>
<head>
<!-- This meta tag is relevant only for IE -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script type="text/javascript">
function crossriderMain($) {
appAPI.db.async.get('style-css', function(rules) {
$('<style type="text/css">').text(rules).appendTo('head');
});
appAPI.db.async.get('script-js', function(code) {
// runs in the context of the extension
$.globalEval(code.replace('CONTEXT','EXTN'));
// Alternatively, run in context of page DOM
$('<script type="text/javascript">')
.html(code.replace('CONTEXT','PAGE DOM')).appendTo('head');
});
}
</script>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
style.css :
h1 {color:red;}
script.js
console.log('CONTEXT:: script.js running');
免責事項:私はクロスライダーの従業員です