logo
Published on

ニコニコ動画のマイリスト画面で動画のリンクを無効化する

Authors

JavaScriptでニコニコ動画のマイリスト画面の動画リンクを無効化、クリックできなくします。

どれだけ需要があるのか分かりませんが。

ニコニコ動画のマイリスト画面で動画のリンクを無効化して、動画タイトルなどをコピペしやすくします。

ニコニコは特殊仕様なようで、ただremoveAttribute('href')しただけでは無効化出来ません。

こうします。

for (i = 0; i < document.getElementsByTagName('a').length; i++){
    document.getElementsByTagName('a')[i].removeAttribute('data-href') ;
}
for (i = 0; i < document.getElementsByTagName('a').length; i++){
    document.getElementsByTagName('a')[i].removeAttribute('href') ;
}

ブックマークレット

javascript:for(i=0;i<document.getElementsByTagName('a').length;i++){document.getElementsByTagName('a')[i].removeAttribute('data-href')}for(i=0;i<document.getElementsByTagName('a').length;i++){document.getElementsByTagName('a')[i].removeAttribute('href')}

最初にdata-hrefを消してあげるのが肝です。

もしくは、面倒なので、"a"タグの属性を全て一気に消してしまう、というやり方もできます。

こちらなら、ニコニコ動画のような仕様の他のサイトでも流用できる可能性があります。

少し長いですが。

// javascriptでjQueryをincludeして使えるようにする
(function() {
    // Load the script
    var script = document.createElement("SCRIPT");
    script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js';
    script.type = 'text/javascript';
    script.onload = function() {
        var $ = window.jQuery;
        // Use $ here...
    };
    document.getElementsByTagName("head")[0].appendChild(script);
})();

// define Remove all attributes function
jQuery.fn.removeAttributes = function() {
  return this.each(function() {
    var attributes = $.map(this.attributes, function(item) {
      return item.name;
    });
    var img = $(this);
    $.each(attributes, function(i, item) {
    img.removeAttr(item);
    });
  });
}

$("a").removeAttributes();

参考:

javascript - Remove all attributes - Stack Overflow