機能
- 動画のタイトルを最初からすべて表示する
- 詳細情報・メニューが以下のように動画の右側に表示される
追記|2009.01.02
- タグ編集時にもプレイヤーがズレないようにした
- チャンネル動画における不具合を修正した
(function () {
var movieTitle = document.getElementsByTagName('h1')[0].cloneNode(true);
var h1Container = document.getElementById('des_1').getElementsByClassName('video')[0].parentNode;
while (h1Container.childNodes.length) {
h1Container.childNodes[0].parentNode.removeChild(h1Container.childNodes[0]);
}
h1Container.appendChild(movieTitle);
document.getElementsByTagName('h1')[1].style.marginTop = '6px';
document.getElementById('des_1').getElementsByTagName('a')[0].addEventListener('click', hidePlayerRight, false);
if (document.getElementById('des_2').getAttribute('style').search(/.+block.+/) == 0) {
hidePlayerRight();
}
var button = document.getElementById('des_2').getElementsByTagName('a');
for (var i = 0, l = button.length; i < l; i++) {
if (button[i].getAttribute('href').search(/#/) == 0) {
var hideDescription = button[i];
}
}
hideDescription.addEventListener('click', showPlayerRight, false);
var newDescription = document.createElement('div');
newDescription.appendChild(document.getElementsByTagName('h1')[1].previousSibling.previousSibling);
if (document.getElementById('des_2').getElementsByTagName('img')[0].getAttribute('alt') == '投稿者コメント') {
newDescription.appendChild(document.getElementById('des_2').getElementsByTagName('img')[0].parentNode);
}
newDescription.appendChild(document.getElementsByClassName('video_description')[0]);
newDescription.appendChild(document.getElementById('des_2').getElementsByClassName('TXT12')[0]);
newDescription.appendChild(document.getElementById('mymemory_add_form').parentNode.parentNode.parentNode.parentNode);
if (document.getElementById('des_2').getElementsByClassName('TXT12')[0].firstChild.nodeValue == 'この動画を、あなたが所属するコミュニティに登録しますか?') {
newDescription.appendChild(document.getElementById('des_2').getElementsByClassName('TXT12')[0].parentNode);
}
if (document.getElementById('des_2').getElementsByClassName('chacom_bg')[0]) {
newDescription.appendChild(document.getElementById('des_2').getElementsByClassName('chacom_bg')[0].parentNode);
}
document.getElementById('flvplayer_container').style.position = 'relative';
newDescription.style.position = 'absolute';
newDescription.style.top = '5px';
newDescription.style.right = '0';
newDescription.style.zIndex = '1';
newDescription.style.width = '400px';
document.getElementById('flvplayer_container').appendChild(newDescription);
GM_addStyle('div#tag_edit_form {position: absolute; top: 5px; right: 0; z-index: 2; width: 400px;}');
editStartPlus();
function getElementsByClassName(name) {
var elements = [];
var allElements = document.getElementsByTagName('*');
for (var i = 0, l = allElements.length; i < l; i++) {
if (allElements[i].className == name) {
elements.push(allElements[i]);
}
}
return elements;
}
function hidePlayerRight() {
document.getElementById('flvplayer').style.width = '554px';
}
function showPlayerRight() {
document.getElementById('flvplayer').style.width = '960px';
}
function getHeight() {
document.getElementById('video_tags').parentNode.parentNode.parentNode.parentNode.parentNode.style.height = document.getElementById('video_tags').parentNode.parentNode.parentNode.parentNode.parentNode.offsetHeight + 'px';
}
function editStartPlus() {
window.setTimeout(function() {
var startButton = document.getElementById('video_tags').getElementsByClassName('tag_txt')[0].getElementsByTagName('a');
for (var i = 0, l = startButton.length; i < l; i++ ) {
if (startButton[i].getAttribute('href').search(/^javascript:startTagEdit/) == 0) {
startButton[i].addEventListener('click', function(){newDescription.style.visibility = 'hidden';}, false);
startButton[i].addEventListener('click', hidePlayerRight, false);
startButton[i].addEventListener('mouseover', getHeight, false);
startButton[i].addEventListener('click', editEndPlus, false);
}
}
}, 1000);
}
function editEndPlus() {
window.setTimeout(function() {
document.getElementById('flvplayer_container').appendChild(document.getElementById('tag_edit_form'));
var endButton = document.getElementById('tag_edit_form').getElementsByClassName('submit')[document.getElementById('tag_edit_form').getElementsByClassName('submit').length - 1];
endButton.addEventListener('click', showPlayerRight, false);
endButton.addEventListener('click', editStartPlus, false);
endButton.addEventListener('click', function(){newDescription.style.visibility = 'visible';}, false);
}, 1000);
}
})();
問題点
setTimeout
のせいで、タグ編集が指定の位置に表示されるまで1秒かかる
- 詳細情報・メニューを表示しながらタグを編集できない