{"id":25895,"date":"2025-03-07T13:57:44","date_gmt":"2025-03-07T04:57:44","guid":{"rendered":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25895"},"modified":"2025-03-07T13:57:46","modified_gmt":"2025-03-07T04:57:46","slug":"vooglebrowser","status":"publish","type":"post","link":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25895","title":{"rendered":"Vooglebrowser"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"ja\">\n&lt;head>\n  &lt;meta charset=\"UTF-8\">\n  &lt;title>Voogle\u30d6\u30e9\u30a6\u30b6&lt;\/title>\n  &lt;meta property=\"og:title\" content=\"Voogle\u30d6\u30e9\u30a6\u30b6\">\n  &lt;meta property=\"og:description\" content=\"\u6b21\u4e16\u4ee3\u30bf\u30d6\u30d6\u30e9\u30a6\u30b6 Voogle\">\n  &lt;meta property=\"og:url\" content=\"https:\/\/voogle.onrender.com\/\">\n  &lt;meta property=\"og:type\" content=\"website\">\n  &lt;meta property=\"og:image\" content=\"https:\/\/voogle.onrender.com\/ogp.png\">\n  &lt;link href=\"https:\/\/fonts.googleapis.com\/icon?family=Material+Icons\" rel=\"stylesheet\">\n  &lt;style>\n    body.dark {\n      background-color: #222;\n      color: #fff;\n    }\n    header {\n      background-color: #4285F4;\n      padding: 15px;\n      color: white;\n      font-size: 24px;\n      text-align: center;\n    }\n    #tabs {\n      display: flex;\n      background-color: #e0e0e0;\n      padding: 10px;\n      overflow-x: auto;\n    }\n    .tab {\n      padding: 8px 16px;\n      background-color: white;\n      border-radius: 20px;\n      margin-right: 10px;\n      cursor: grab;\n      font-weight: bold;\n      position: relative;\n      user-select: none;\n    }\n    .tab.active {\n      background-color: #34A853;\n      color: white;\n    }\n    .tab .close {\n      position: absolute;\n      top: 0;\n      right: 5px;\n      cursor: pointer;\n      font-family: 'Material Icons';\n    }\n    #navbar {\n      display: flex;\n      padding: 10px;\n      background-color: #f1f1f1;\n      gap: 10px;\n    }\n    #url {\n      flex: 1;\n      padding: 10px;\n      border-radius: 20px;\n      border: 1px solid #ccc;\n    }\n    button {\n      padding: 10px 20px;\n      background-color: #4285F4;\n      color: white;\n      border: none;\n      border-radius: 20px;\n      cursor: pointer;\n      display: flex;\n      align-items: center;\n      gap: 5px;\n    }\n    #spinner {\n      display: none;\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n      font-size: 24px;\n    }\n    iframe {\n      width: 100%;\n      height: calc(100% - 240px);\n      border: none;\n    }\n    footer {\n      padding: 10px;\n      background-color: #e0e0e0;\n      text-align: center;\n      font-size: 12px;\n    }\n  &lt;\/style>\n&lt;\/head>\n&lt;body>\n\n&lt;header>\n  &lt;span class=\"material-icons\" style=\"vertical-align: middle; margin-right: 10px;\">language&lt;\/span>\n  &lt;a href=\"https:\/\/voogle.onrender.com\/\">Voogle\u30d6\u30e9\u30a6\u30b6&lt;\/a>\n&lt;\/header>\n\n&lt;div id=\"tabs\">&lt;\/div>\n\n&lt;div id=\"navbar\">\n  &lt;input type=\"text\" id=\"url\" placeholder=\"https:\/\/example.com\">\n  &lt;button id=\"go\">&lt;span class=\"material-icons\">arrow_forward&lt;\/span>\u79fb\u52d5&lt;\/button>\n  &lt;button id=\"newTab\">&lt;span class=\"material-icons\">add&lt;\/span>\u30bf\u30d6\u8ffd\u52a0&lt;\/button>\n  &lt;button id=\"darkModeToggle\">&lt;span class=\"material-icons\">dark_mode&lt;\/span>\u30c0\u30fc\u30af\u30e2\u30fc\u30c9&lt;\/button>\n&lt;\/div>\n\n&lt;div id=\"spinner\">\u8aad\u307f\u8fbc\u307f\u4e2d...&lt;\/div>\n\n&lt;iframe id=\"viewer\">&lt;\/iframe>\n\n&lt;footer>\n  &amp;copy; 2025 Voogle Inc.\n&lt;\/footer>\n\n&lt;script>\n  const tabs = document.getElementById('tabs');\n  const viewer = document.getElementById('viewer');\n  const urlInput = document.getElementById('url');\n  const goButton = document.getElementById('go');\n  const newTabButton = document.getElementById('newTab');\n  const darkModeToggle = document.getElementById('darkModeToggle');\n  const spinner = document.getElementById('spinner');\n\n  let tabData = &#91;];\n  let activeTab = -1;\n\n  function switchTab(index) {\n    activeTab = index;\n    document.querySelectorAll('.tab').forEach((tab, i) => {\n      tab.classList.toggle('active', i === index);\n    });\n    loadPage(tabData&#91;index].url);\n  }\n\n  function addTab(url = 'https:\/\/voogle.onrender.com\/') {\n    tabData.push({ url });\n    const index = tabData.length - 1;\n\n    const tab = document.createElement('div');\n    tab.className = 'tab';\n    tab.setAttribute('draggable', true);\n    tab.innerHTML = `\u30bf\u30d6 ${index + 1} &lt;span class=\"close\">close&lt;\/span>`;\n    tab.onclick = () => switchTab(index);\n    tab.querySelector('.close').onclick = (e) => {\n      e.stopPropagation();\n      tabs.removeChild(tab);\n      tabData.splice(index, 1);\n      if (activeTab === index) {\n        viewer.src = '';\n        urlInput.value = '';\n      }\n    };\n    tabs.appendChild(tab);\n    switchTab(index);\n  }\n\n  function loadPage(url) {\n    spinner.style.display = 'block';\n    viewer.src = url;\n    urlInput.value = url;\n    viewer.onload = () => {\n      spinner.style.display = 'none';\n      document.title = viewer.contentDocument.title || 'Voogle\u30d6\u30e9\u30a6\u30b6';\n    };\n  }\n\n  goButton.onclick = () => {\n    if (activeTab >= 0) {\n      let url = urlInput.value.trim();\n      if (!url.startsWith('http')) {\n        url = 'https:\/\/' + url;\n      }\n      tabData&#91;activeTab].url = url;\n      loadPage(url);\n    }\n  };\n\n  newTabButton.onclick = () => addTab();\n\n  darkModeToggle.onclick = () => {\n    document.body.classList.toggle('dark');\n    localStorage.setItem('darkMode', document.body.classList.contains('dark'));\n  };\n\n  if (localStorage.getItem('darkMode') === 'true') {\n    document.body.classList.add('dark');\n  }\n\n  addTab();\n&lt;\/script>\n\n&lt;\/body>\n&lt;\/html>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[4,6],"tags":[3],"class_list":["post-25895","post","type-post","status-publish","format-standard","hentry","category-programming","category-web","tag-programming"],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25895"}],"version-history":[{"count":2,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25895\/revisions"}],"predecessor-version":[{"id":25897,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25895\/revisions\/25897"}],"wp:attachment":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25895"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}