Polymerã使ãã¨ãã®ç¾ç¶
ä¾ãã°ãPolymerãç¨ãã¦ä½ã£ãã«ã¹ã¿ã ã¨ã¬ã¡ã³ãã使ããã¨ãèãã¾ããã©ã®ãããªã«ã¹ã¿ã ã¿ã°ã使ãå ´åã§ãã£ã¦ããHTMLã®ä¸ã§<link rel="import" href="">
ãæ¸ãã¦ãPolymerãmy-elementã®ã³ã¼ããèªã¿è¾¼ãå¿
è¦ãããã¾ãã以ä¸ã®ããã«æ¸ãã¾ãã
<html> <head> <meta charset="utf-8"> <title>Demo</title> <!-- ã«ã¹ã¿ã ã¿ã°ãèªã¿è¾¼ã --> <link rel="import" href="bower_components/polymer/polymer.html"> <link rel="import" href="bower_components/price-tax/price-tax.html"> </head> <body> <!-- èªã¿è¾¼ãã ã«ã¹ã¿ã ã¿ã°ã使ã --> <price-tax price="100" rate="8" switchable="true">ååA</price-tax> <price-tax price="300" rate="8" switchable="true">ååB</price-tax> </body> </html>
linkã¿ã°ã«æ¸ããããªã½ã¼ã¹ã¯ãã¿ã°ããã©ã¦ã¶ã«çºè¦ããæ¬¡ç¬¬ãã¦ã³ãã¼ããã¦ãããã¾ãããã®ä¾ã§ã¯ãheadå ã«æ¸ãã¦ããã®ã§ãbodyã®è§£éãå§ã¾ãåã«ã«ã¹ã¿ã ã¨ã¬ã¡ã³ãã«å¿ è¦ãªã³ã¼ãã¯ãã¹ã¦ãã¦ã³ãã¼ãããã¾ãã
æ°ã«ãªããã¤ã³ã
<link rel="import" href="">
ã®é¨åãæ ¼å¥½æªããã<price-tax>
ã¨ããã«ã¹ã¿ã ã¨ã¬ã¡ã³ããä½ãã¾ããï¼ä½¿ã£ã¦ã¿ã¦ãï¼ãã¨è¨ããããimportã¨ãã®ãã¨ããã¾ãæ°ã«ããã«ããã使ããããã«ãããã- importãã¦ãã
polymer.html
ãprice-tax.html
ã¯ãé »ç¹ã«æ´æ°ããã訳ã§ã¯ãªãã®ã§ããã¼ã«ã«ããèªã¿è¾¼ã¿ããã
ã¢ã¤ãã¢1
Chromeæ¡å¼µæ©è½ã®æ©è½ã«ããContent Scriptsãã¨ãããã®ãããã¾ããããã¯ãChromeã«ã¤ã³ã¹ãã¼ã«ãããæ¡å¼µæ©è½ããã¦ã¼ã¶ã¼ã«ãã£ã¦è¡¨ç¤ºããã¦ããï¼é²è¦§ããã¦ããï¼ã¦ã§ããã¼ã¸ã«å¯¾ãã¦ç¬èªã«ã¬ã¤ã¢ã¦ããªã©ã追å ã§ããæ©è½ã§ããããã使ã£ã¦ãå ã®æ°ã«ãªããã¤ã³ããå°ãã ã解決ãã¦ã¿ã¾ããã
PolymerãChromeæ¡å¼µå´ããæä¾ãã
代表çãªPolymer Elementsã®ã³ã¼ããããã¯ã°ã©ã¦ã³ãã§æä¾ããã ãã®æ¡å¼µæ©è½ãå°å
¥ãããã¨ã§ãHTMLã<link rel="import" href="">
ã宣è¨ããã«ã以ä¸ã®ããã«æ¸ããããã«ãªãã¾ãã
<html> <head> <meta charset="utf-8"> <title>Demo</title> <!-- linkã¿ã°ã¯ä¸è¦!!!! --> </head> <body> <!-- æ¡å¼µæ©è½ã§èªã¿è¾¼ãã ã«ã¹ã¿ã ã¿ã°ã使ã --> <price-tax price="100" rate="8" switchable="true">ååA</price-tax> <price-tax price="300" rate="8" switchable="true">ååB</price-tax> </body> </html>
æ¡å¼µæ©è½ã®ã¡ã¤ã³ãã¡ã¤ã«ã¯ä»¥ä¸ã®ããã«ãªã£ã¦ããã
/* * ãµã ã <link rel="import" ~> ã§èªã¿è¾¼ãã§ãããªã½ã¼ã¹ */ var uris = [ "bower_components/polymer/polymer.html", "price-tax.html" ]; // linkã¿ã°ãheadã«è¿½å ãã uris.forEach(function (uri) { var link = document.createElement('link'); link.rel = 'import'; // æ¡å¼µæ©è½ããã±ã¼ã¸å ã®ãã¡ã¤ã«ã®URLãå¾ãã«ã¯ã // chrome.extension.getURLã¡ã½ãããç¨ããã link.href = chrome.extension.getURL(uri); link.onload = function(e) { console.info('Loaded Polymer.'); }; link.onerror = function(e) { }; document.head.appendChild(link); });
åçã«linkã¿ã°ãçæãã¦ã表示ä¸ã®ãã¼ã¸ã®headã¿ã°å ã«è¿½è¨ãã¦ãã¾ãã
試ä½å
GitHubã§å ¬éãã¦ãã¾ãããã¢ã®å®è¡ãçµããããã¢ã³ã¤ã³ãã¼ã« or æ©è½OFFã«ããã®ããå¿ããªãã
課é¡
- èªã¿è¾¼ã¿ã®ã¿ã¤ãã³ã°
- å½ç¶ã§ããããã¹ã¦ã®ã«ã¹ã¿ã ã¨ã¬ã¡ã³ããç¶²ç¾ ã§ããªããã¨
manifest.json
ã®content_scripts
ãã£ã¼ã«ãã«ã¯ããã¾ã¯
{ "matches": ["http://*/*", "https://*/*"], "js": [ "bower_components/webcomponentsjs/webcomponents.js", "main.js" ], "run_at": "document_idle" }
ã®ããã«æ¸ãã¦ãã¾ãããããã ã¨Polymerã³ã¼ãã®æä¾ã¿ã¤ãã³ã°ãé ããªã£ã¦ãã¾ãã表示æã«ä¸ç¬ã¬ã¤ã¢ã¦ããå´©ãã¦ãã¾ãã¾ãã
{ "matches": ["http://*/*", "https://*/*"], "html": [ "bower_components/polymer/polymer.html", "bower_components/price-tax/price-tax.html" ], "run_at": "document_idle" }
ä¸ã®ãããªè¨è¿°ã§ã<head>
ã®èªã¿è¾¼ã¿ãå®äºããæç¹ã§ãcontent scriptããç´æ¥htmlãèªã¿è¾¼ããã¨ãã§ããããã«ãªä»çµã¿ãã§ããã¨å¬ããã§ããð£
ã¢ã¤ãã¢2
HTMLã以ä¸ã®ããã«æ¸ãã¦ããã©ã¦ã¶ãåæã«bower install
ã¿ãããªãã¨ããã£ã¦ãããããã«ãªã£ãããã£ã¨æ°è»½ã«ã«ã¹ã¿ã ã¿ã°ã使ããããã«ãªãã¨æã£ãã<daiz713.price-tax ~>
ã¨ããè¨æ³ã¯ããhttps://github.com/daiz713/price-tax
ã«ã«ã¹ã¿ã ã¨ã¬ã¡ã³ãã®ã¡ã¤ã³ãã¡ã¤ã«ããããï¼ãã¨æãã¦ãããã¢ã¤ãã¢ã§ãã
<html> <head> <meta charset="utf-8"> <title>Demo</title> <!-- linkã¿ã°ã¯ä¸è¦!!!! --> </head> <body> <!-- ã«ã¹ã¿ã ã¿ã°ã®å ¥æå ãæãã¦ãããè¨æ³ --> <daiz713.price-tax price="100" rate="8" switchable="true">ååA</price-tax> <daiz713.price-tax price="300" rate="8" switchable="true">ååB</price-tax> </body> </html>
ãã®HTMLããä¸çªæåã«æ¸ããHTMLã«ãã©ã³ãã¤ã«ãã使¦ã§ä½ããã¢ãä½ã£ã¦ã¿ãããã§ãããã ã¨HTMLãæ¸ãã®ã¯ã©ã¯ã«ãªãããã©ãæçµçæç©ã¯ç¾ç¶ã¨å¤ãããªããã¨ã«ãªãã®ã§å¾®å¦ã§ããð£