JavaScript 태그 의 data - xxx 속성 값 분석 (script 태그 의 속성 분석)

5349 단어 web
자 바스 크 립 트 에서 우 리 는 보통 외부 js 를 도입 하거나 내 장 된 js 는 모두 script 라벨 을 써 서 이 루어 집 니 다.
<script type="text/javascript">
  console.log(1-2);
script>

//   

<script src="//a.com/tools.min.js">script>

외부 js 를 도입 할 때 일부 코드 는 동적 으로 값 을 확정 하거나 설정 을 지정 하여 서로 다른 효 과 를 실현 해 야 합 니 다.
예:
"//a.com/tools.min.js"</span> <span class="hljs-typedef"><span class="hljs-keyword">data</span>-<span class="hljs-keyword">type</span>="open">

//    tools.min.js    data-type            

방법 1:
사용자 가 script 탭 을 정의 할 때 id 를 정의 하도록 규정 합 니 다.
var dom = document.getElementById("xx");
var val = dom.getAttribute("xxx");

그러나 이런 한 계 는 매우 커서 이 방법 을 추천 하지 않 는 다.
방법 2:
html 5 의 새로운 기능 dataset 속성 을 통 해 구현

<html>

    <head>
        <title>  JavaScript    data-xxx    title>
        <meta charset="utf-8" />
    head>

    <body>

    body>

    <script data-type="11" data-json='{"a":"a","b":1}' data-aaa-bbb="aaa" type="text/javascript">
        /**
         *     script      
         * @param {Object} window
         */
        function currentScript(window) {
            var document = window.document;
            return document.currentScript || (function() {
                var scripts = document.getElementsByTagName("script");
                return scripts[scripts.length - 1];
            })();
        }

        /**
         *   data attr
         * @param {Object} tag
         */
        function parseDataAttr(tag) {
            var options = {};
            for(var opt in tag.dataset) {
                if(tag.dataset.hasOwnProperty(opt)) {
                    try {
                        options[opt] = JSON.parse(tag.dataset[opt]);
                    } catch(_) {
                        options[opt] = tag.dataset[opt];
                    }
                }
            }
            return options;
        }

        //    
        var opt = parseDataAttr(currentScript(window));
        console.log(opt)
    script>

html>

브 라 우 저가 dataset 방법 을 지원 하 는 지 판단 하기:
https://html5demos.com/dataset/
https://www.w3schools.com/tags/att_global_data.asp

좋은 웹페이지 즐겨찾기