• R/O
  • HTTP
  • SSH
  • HTTPS

sie: コミット

ブラウザでSVGを表示するSIEの開発 (SIE - to display SVG on legacy browsers)


コミットメタ情報

リビジョン0b216413dbf8166d44888b68afecbc49d3185de8 (tree)
日時2015-12-02 22:38:20
作者dhrname <dhrname@user...>
コミッターdhrname

ログメッセージ

Support calling from the SVG Document

変更サマリ

差分

--- a/org/w3c/dom/smil.js
+++ b/org/w3c/dom/smil.js
@@ -1419,8 +1419,21 @@ function getDocument()
14191419 svgns = "http://www.w3.org/2000/svg";
14201420 if (svg) {
14211421 for (var i=0;i<svg.length;++i) {
1422- var svgDoc = svg[i].getSVGDocument(),
1423- $set = base("$calcMode").$attribute.$setElement;
1422+ getElement( svg[i].getSVGDocument() );
1423+ }
1424+ }
1425+ /*SVG文書から呼び出されたときも処理する*/
1426+ getElement(document);
1427+ /*idはアニメの中止ハンドル*/
1428+ var id = __step();
1429+ window.addEventListener("unload", function() {
1430+ /*ページを移る際には、アニメーションを中止しておく(中止する保証がないため)*/
1431+ window.cancelAnimationRequest && cancelAnimationRequest(id);
1432+ });
1433+
1434+ /*文書からアニメーション関連要素を取り出して、オブジェクトを初期化*/
1435+ function getElement (svgDoc) {
1436+ var $set = base("$calcMode").$attribute.$setElement;
14241437 init($set, "set");
14251438 init($set.$animateElement, "animate");
14261439 init($set.$animateElement, "animateColor");
@@ -1434,21 +1447,14 @@ function getDocument()
14341447 var hash = svgDoc.defaultView.location.hash.slice(1);
14351448 svgDoc.getElementById(hash).beginElement();
14361449 });
1437- }
1438- }
1439- /*idはアニメの中止ハンドル*/
1440- var id = __step();
1441- window.addEventListener("unload", function() {
1442- /*ページを移る際には、アニメーションを中止しておく(中止する保証がないため)*/
1443- window.cancelAnimationRequest && cancelAnimationRequest(id);
1444- });
1445-
1446- function init (obj, name) {
1447- var eles = svgDoc.getElementsByTagNameNS(svgns, name)
1448- for (var i=0;i<eles.length;++i) {
1449- obj.up().init(eles.item(i));
1450- }
1451- eles = obj = void 0;
1450+
1451+ function init (obj, name) {
1452+ var eles = svgDoc.getElementsByTagNameNS(svgns, name)
1453+ for (var i=0;i<eles.length;++i) {
1454+ obj.up().init(eles.item(i));
1455+ }
1456+ eles = obj = void 0;
1457+ };
14521458 };
14531459 }
14541460
旧リポジトリブラウザで表示