iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 24
0
Modern Web

弄點簡單的 Chrome Extension 讓生活更方便系列 第 24

Chrome Extension 24 - Youtube 筆記功能修改樣式

  • 分享至 

  • xImage
  •  

續上篇,修改樣式並先放到影片上方的位置 :

$('<div id="root"></div').prependTo( "#player-api");

逐步修改樣式如下 :

<template>
    <el-container>
        <el-main>
            <el-row v-show="!isPaused">
                <el-col :span="8">
                    <div class="grid-content bg-purple">
                        <span>{{currentMessage}}</span>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="grid-content bg-purple-light">
                        <el-button type="primary" @click="play()">停止按鈕</el-button>
                        {{currentTime}} - 已儲存 {{items.length}} 筆訊息
                    </div>
                </el-col>
            </el-row>
            <el-row v-show="isPaused">
                <el-col :span="8">
                    <div class="grid-content bg-purple">
                        <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="currentMessage">
                        </el-input>
                    </div>
                </el-col>
                <el-col :span="8">
                    <div class="grid-content bg-purple-light">
                        <el-button type="success" @click="saveData()">儲存</el-button>
                        <el-button type="primary" @click="play()">播放按鈕</el-button>
                        {{currentTime}} - 已儲存 {{items.length}} 筆訊息
                    </div>
                </el-col>
            </el-row>
            <el-row v-show="isShowDetail">
                <el-col :span="16">
                    <ul v-for="item in items">
                        <li>{{item.time}} - {{item.message}}</li>
                    </ul>
                </el-col>
            </el-row>
        </el-main>
    </el-container>
</template>

取得當前影片是否撥放中 :

var video = document.getElementsByClassName('video-stream')[0];
this.isPaused = video.paused;

因為儲存多部影片的備註還有問題,所以先修改儲存到 key 為 tempData :

        loadData: function() {
            var vm = this;

            chrome.storage.sync.get("tempData", function(result) {
                vm.items = result.tempData;
                console.log(result);
                if (vm.items === undefined) {
                    vm.items = [];
                }
            });
        },
        saveData: function() {
            var vm = this;

            var filterByTime = vm.items.filter(function(item, index, array) {
                return item.time == vm.currentTime;
            });
            if (filterByTime.length > 0) {
                vm.items.forEach(function(item, index, array){
                    if(item.time == vm.currentTime)
                    {
                        item.message = vm.currentMessage;
                    }
                });
            } else {
                var item = {
                    time: vm.currentTime,
                    message: vm.currentMessage
                }
                vm.items.push(item);
            }
            chrome.storage.sync.set({ "tempData" : vm.items }, function() {});
        },

目前呈現結果如下 :

影片播放時會顯示訊息 :
https://ithelp.ithome.com.tw/upload/images/20181108/20094223R85W8UihLc.png
影片暫停時允許輸入訊息 :
https://ithelp.ithome.com.tw/upload/images/20181108/20094223gV68Iyvq8H.png

感謝收看 :)


上一篇
Chrome Extension 23 - Youtube 筆記功能 Part 4 完成 vue 的新增訊息操作
下一篇
Chrome Extension 25 - Youtube 筆記功能修正存取與樣式
系列文
弄點簡單的 Chrome Extension 讓生活更方便30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言