3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Web-Componentsを理解するため、自作してみる(1)

Last updated at Posted at 2015-06-28

現在、ユーザが独自タグを投稿して、利用者がそれらを組み合わせるだけでwebアプリができるプラットフォームを構想中しています。そこで必要になる技術がwebcomponents。その仕組みを理解すべく、簡単なサンプルを作ってみようと思います。

一回目は純粋に独自タグを読み込んで入れるだけという例。

index.html
<script src='https://code.jquery.com/jquery-2.1.4.min.js'></script>
<chat></chat>
<script>
  (function(argument) {
    $.get('chat.tag', function(data) {
      $('chat').html(data)
    })
  })()
</script>

chat.tag
<h1>This is tag</h1>

見ての通り、jQueryで独自タグを見つけ、$.getでそのタグをとってくるというシンプルな処理。結果はこんな感じ

できてますね。次は.tagファイル内部でjsを実行してみます。

chat.tag
<h1>This is tag</h1>
<script>
  var ele = document.createElement("img");
  ele.setAttribute("src", "public/oct.png"); // ele.src = "./image/picture/bg01.gif";
  document.body.appendChild(ele);
</script>

きちんと画像が挿入されましたね。成功です。

勘の鋭い方ならもう気付いたかもしれませんが、これだと.tagからdocument.bodyに挿入しています。あるいは、できてしまいます。個人開発ならば問題ないんですが、コンポーネントを投稿してもらう際に、他のHTMLをいじられる懸念が生まれます。

第二回ではWebWorkerを使ってこのスコープ問題を解決したいと思います。お楽しみに。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?