2013-10-07 19 views
-1

如果我添加了這樣的JavaScript的jquery.data的版本()

function create(htmlStr){ 
    var frag = document.createDocumentFragment(), 
    temp = document.createElement('div'); 
    temp.innerHTML = htmlStr; 
    while (temp.firstChild){ 
     frag.appendChild(temp.firstChild); 
     } 
    return frag; 
    } 

var el=document.getElementsByClassName('b'+M)[0]; 

el.appendChild(create('<div data-what="whatinthewhatnow"></div>')); 

數據我可以看到它在「右擊>檢查元素控制檯」。

這是正常的我以爲所有數據 - *屬性被假設是從用戶視圖中隱藏?

ps:我不能使用jquery.data(不允許:))。

+0

*客戶端上沒有任何內容隱藏,什麼都沒有。 – user2736012

+0

@ user2736012 jquery.data()隱藏了! –

+0

***客戶端上沒有任何東西被隱藏,什麼都沒有。 。jQuery.data存儲在'jQuery.cache'中,找到它就很簡單了。 – user2736012

回答

0

數據屬性不會從代碼檢查隱藏的,但話又說回來,沒有什麼是 - 這是一個調試工具,以及所有JavaScript是提供給所有用戶看到 - 只需單擊「查看源文件」,並在必要時以下任何鏈接,並執行相同的操作。

然而,官方數據屬性不能影響到網絡瀏覽器,以便它們不會呈現或使他們對用戶可見的任何其他方式處理。

下面介紹一下w3 specification不得不說的

自定義數據屬性是爲了存儲專用的網頁或應用程序的定製數據,其中有沒有更多的自定義數據屬性(由我高亮加)適當的屬性或元素。

這些屬性不適用於獨立於使用屬性的站點的軟件。

...這些屬性是供網站自身腳本中使用,而不是爲公開可用的元數據的通用擴展機制。

... 用戶代理不能獲得這些屬性或值的任何實現的行爲。用於用戶代理的規範不得將這些屬性定義爲具有任何有意義的值。

JavaScript庫可以使用自定義數據屬性,因爲它們被認爲是在其上使用他們的頁面的一部分。

此外,您可能想要閱讀John Resig's post about the data attributes。它已經5歲了,並且過時了,他說「沒有瀏覽器支持.dataset,現在他們都這樣做了,但是另外一個非常有價值(和簡短)的閱讀(如果你不知道,John Resig是負責任的人用於編寫jQuery)