`;
document.body.appendChild(win);
drag(win);
return win;
}
function openBrowser(){
const html = `
`;
createWindow("Browser", html);
renderTabs();
}
function formatURL(v){
if(v.includes(".") && !v.includes(" ")){
return v.startsWith("http") ? v : "https://" + v;
}
return "https://www.google.com/search?q=" + encodeURIComponent(v);
}
function go(){
const tab = OS.tabs[OS.activeTab];
const u = formatURL(url.value);
tab.url = u;
tab.history.push(u);
loadTab();
}
function renderTabs(){
const el = document.getElementById("tabs");
el.innerHTML = OS.tabs.map((t,i)=>
`
Tab ${i+1}
`
).join("");
}
function switchTab(i){
OS.activeTab = i;
loadTab();
renderTabs();
}
function loadTab(){
const tab = OS.tabs[OS.activeTab];
document.getElementById("view").src = tab.url;
document.getElementById("url").value = tab.url;
}
function openExplorer(){
renderExplorer();
}
function renderExplorer(){
let dir = OS.fs;
OS.cwd.forEach(p => dir = dir[p]);
let html = `
${OS.cwd.join(" / ")}
`;
for(let k in dir){
html += `
${typeof dir[k]==="object" ? "" : ""} ${k}
`;
}
html += "
";
createWindow("Explorer", html);
}
function openNotepad(){
const html = `
`;
createWindow("Notepad", html);
}
function saveFile(){
let dir = OS.fs;
OS.cwd.forEach(p => dir = dir[p]);
dir[fname.value] = txt.value;
notify("保存完了");
}
function addBookmark(){
if(OS.privateMode) return;
OS.bookmarks.push(OS.tabs[OS.activeTab].url);
}
function togglePrivate(){
OS.privateMode = !OS.privateMode;
document.body.classList.toggle("private", OS.privateMode);
notify(OS.privateMode ? "Private ON" : "OFF");
}
function notify(msg){
const n = document.createElement("div");
n.className = "notify";
n.innerText = msg;
document.body.appendChild(n);
setTimeout(()=>n.remove(),3000);
}
document.oncontextmenu = e=>{
e.preventDefault();
context.style.display="block";
context.style.left=e.pageX+"px";
context.style.top=e.pageY+"px";
context.innerHTML=`