RecReading=true campaignTrail_temp.achievements = { "Superstar": { "image": "https://i.imgur.com/YChu1Mc.png", "description": "Win as Lien Chan with over 57% of the vote.", "cannotBeCheated": true }, "Sweep Southern Taiwan": { "image": "https://i.imgur.com/9dTWGDz.png", "description": "Win 21 counties/cities as Lien Chan and secure overall victory.", "cannotBeCheated": true }, "Standard Ending": { "image": "https://i.imgur.com/eYvjS4T.jpeg", "description": "Win 16 counties/cities as Lien Chan and secure overall victory.", "cannotBeCheated": true }, "Hard-Fought Battle": { "image": "https://i.imgur.com/mkfAFVg.png", "description": "Win as Lien Chan on Hell difficulty.", "cannotBeCheated": true }, "The Godfather": { "image": "https://i.imgur.com/nRa8X6g.png", "description": "Win over 55% of the vote as Lien Chan without attacking Lee Teng-hui.", "cannotBeCheated": true }, "Remove the Mayor": { "image": "https://i.imgur.com/Yg1XMVk.jpeg", "description": "As Lien Chan facing Hsieh Chang-ting, win Kaohsiung City.", "cannotBeCheated": true }, "Election Nullified": { "image": "https://i.imgur.com/GTui6Pm.png", "description": "As Lien Chan, achieve the real-world “canon” ending.", "cannotBeCheated": true }, "Grandpa, You’re Back": { "image": "https://i.imgur.com/TNHUo9D.png", "description": "As Lien Chan, promise to visit mainland China and win Tainan City.", "cannotBeCheated": true }, "Uncle Buffalo": { "image": "https://i.imgur.com/vAGj65K.png", "description": "As Lien Chan or Chen Shui-bian, employ or oppose You Si-kun in the campaign.", "cannotBeCheated": true }, "Electric Fireball": { "image": "https://i.imgur.com/1I5V3Sf.png", "description": "As Lien Chan or Chen Shui-bian, employ or oppose Su Tseng-chang in the campaign.", "cannotBeCheated": true }, "Sueno Hsieh": { "image": "https://i.imgur.com/aZJmn2k.png", "description": "As Lien Chan or Chen Shui-bian, employ or oppose Hsieh Chang-ting in the campaign.", "cannotBeCheated": true }, "International Big Mouth": { "image": "https://i.imgur.com/fXx4Tpe.png", "description": "As Lien Chan or Chen Shui-bian, employ or oppose Lu Hsiu-lien in the campaign.", "cannotBeCheated": true }, "Believe in Taiwan!": { "image": "https://i.imgur.com/arsIb09.png", "description": "Win as Chen Shui-bian with over 53% of the vote.", "cannotBeCheated": true }, "Break the Blue Wall": { "image": "https://i.imgur.com/hw9vfhF.png", "description": "Win 17 counties/cities as Chen Shui-bian and secure overall victory.", "cannotBeCheated": true }, "Sorry, No Electoral College": { "image": "https://i.imgur.com/14VMpMW.jpeg", "description": "Win 10 counties/cities as Chen Shui-bian and secure overall victory.", "cannotBeCheated": true }, "Through Thorns and Brambles": { "image": "https://i.imgur.com/rIQo51e.png", "description": "Win as Chen Shui-bian on Struggle difficulty.", "cannotBeCheated": true }, "Moses and Joshua": { "image": "https://i.imgur.com/ArufgJ8.png", "description": "Win over 53% of the vote as Chen Shui-bian while staying close to both Lee Teng-hui and the TSU.", "cannotBeCheated": true }, "Black-Gold Godfather": { "image": "https://i.imgur.com/i9kmCQY.jpeg", "description": "Win over 53% of the vote as Chen Shui-bian without leveraging Lee Teng-hui’s or the TSU’s support.", "cannotBeCheated": true }, "A-Bian’s Back!": { "image": "https://i.imgur.com/ywFm4cF.png", "description": "Win Taipei City as Chen Shui-bian.", "cannotBeCheated": true }, "Fatal Exchange": { "image": "https://i.imgur.com/DADjmfs.png", "description": "Lose as Chen Shui-bian with over 49.88% of the vote.", "cannotBeCheated": true }, "Cut quickly!": { "image": "https://i.imgur.com/hACHZWP.png", "description": "As Chen Shui-bian, cut off your wife in a crisis and let an old man take the blame.", "cannotBeCheated": true }, "Restoration": { "image": "https://i.imgur.com/8m4IE1k.jpeg", "description": "As Chen Shui-bian, achieve the real-world “canon” ending.", "cannotBeCheated": true }, "Respected Magistrate": { "image": "https://i.imgur.com/f9h1UFP.png", "description": "Win Taipei County and the overall election as Su Tseng-chang.", "cannotBeCheated": true }, "Early Woman President": { "image": "https://i.imgur.com/mnGlrrO.png", "description": "Win the election as Lu Hsiu-lien.", "cannotBeCheated": true }, "Change History": { "image": "https://i.imgur.com/fwPhJSx.png", "description": "As Hsieh Chang-ting, choose Su Tseng-chang as running mate and win the election.", "cannotBeCheated": true }, "Long Live Independence!": { "image": "https://i.imgur.com/6HtZ7qc.png", "description": "Win the election as You Si-kun.", "cannotBeCheated": true } }; campaignTrail_temp.global_parameter_json = [ { "model": "campaign_trail.global_parameter", "pk": 1, "fields": { "vote_variable": 1.12, "max_swing": 0.12, "start_point":1, "candidate_issue_weight": 10, "running_mate_issue_weight": 3, "issue_stance_1_max": -0.71, "issue_stance_2_max": -0.3, "issue_stance_3_max": -0.125, "issue_stance_4_max": 0.125, "issue_stance_5_max": 0.3, "issue_stance_6_max": 0.71, "global_variance": 0.01, "state_variance": 0.005, "question_count": 32, "default_map_color_hex": "#C9C9C9", "no_state_map_color_hex": "#999999" } } ] campaignTrail_temp.election_json = [ { "model": "campaign_trail.election", "pk": 20, "fields": { "year": 2004, "display_year": "ROC'04 Bian.", "summary": "
2004 marks a new milestone in Taiwan’s history.

In 2000, when 4.97 million Taiwanese cast their ballots to send this “son of Taiwan” to Taipei’s highest office, countless hopeful eyes fixed themselves on the bespectacled young president—as if he could rescue Taiwan from all its ills. However, as the brief honeymoon period of blue–green transition faded, A-Bian found himself confronting an entirely new set of challenges. Although the Democratic Progressive Party held the largest seats in the legislature, it could not withstand the united majority of the Kuomintang and the People First Party—two erstwhile electoral adversaries, Lien Chan and Song Chu-yu, who now appeared poised to join forces once again.

Gone was the fresh aura of being the people’s darling, and the notion of a blue–green coalition government had long proven a dead end. Even after swallowing the “Four Noes and One Without” policy as a stabilizing salve for cross-strait relations, the fervor for Taiwan independence continued to course through the grassroots ranks of the DPP—a potent tool for rallying support against its political foes. Fifty-five years of Kuomintang rule had tilted most Taiwanese sentiment toward the blue camp, while Chen Shui-bian merely filched the key to the Presidential Palace amid the fierce clash between Song and Lien. Coupled with his dismal approval ratings and widespread distrust in the DPP’s economic management and governing prowess, these factors have become a formidable hurdle to effective governance. Moreover, he must also contend with the onslaught of the Red Dragon—Beijing’s unprecedented mistrust toward this once-unthinkable DPP government . Diplomatic battles for allied nations are old news, and the December 2001 Legislative Yuan elections along with the 2002 special municipal mayoral contests now loom as mid-term examinations for his presidency. In these perilous times, what course of action will President A-Bian choose?

", "image_url": "https://i.imgur.com/NmP1G2Q.jpeg", "winning_electoral_vote_number": 25, "advisor_url": "https://i.imgur.com/Vl6hvNx.gif", "recommended_reading": "Thank you for playing ROC'04! It took me about a month to create it, and I sincerely appreciate everyone who helped me and the creators of the jet tools. Regarding achievements, there seems to be some bugs, so even if you've completed them, you may not unlock them. I encountered many issues during testing myself. If repeated attempts and achievements don't work, I suggest you provide feedback on my Reddit, and I'll check the code. At least, you can treat the achievements system as a game goal to strive for!

感谢您游玩ROC'04!我花费了大概一个月的时间来创建它,并由衷感谢所有提供我帮助的人,以及我从其他一些mod抄来的代码,我非常感谢所有人和jet工具的制作者。关于成就,由于似乎存在一定的bug,你可能明明完成了它,但却无法解锁成就,我自己在测试中也遇到了很多。如果反复尝试和达成都不行,我建议你可以在我的reddit中反馈,我会检查代码。至少,你可以将成就系统中的项目当做一个游戏目标而进行游戏!

", "has_visits": 1, "no_electoral_majority_image": "", "site_description": "
2004 marks a new milestone in Taiwan’s history.

In 2000, when 4.97 million Taiwanese cast their ballots to send this “son of Taiwan” to Taipei’s highest office, countless hopeful eyes fixed themselves on the bespectacled young president—as if he could rescue Taiwan from all its ills. However, as the brief honeymoon period of blue–green transition faded, A-Bian found himself confronting an entirely new set of challenges. Although the Democratic Progressive Party held the largest seats in the legislature, it could not withstand the united majority of the Kuomintang and the People First Party—two erstwhile electoral adversaries, Lien Chan and Song Chu-yu, who now appeared poised to join forces once again.

Gone was the fresh aura of being the people’s darling, and the notion of a blue–green coalition government had long proven a dead end. Even after swallowing the “Four Noes and One Without” policy as a stabilizing salve for cross-strait relations, the fervor for Taiwan independence continued to course through the grassroots ranks of the DPP—a potent tool for rallying support against its political foes. Fifty-five years of Kuomintang rule had tilted most Taiwanese sentiment toward the blue camp, while Chen Shui-bian merely filched the key to the Presidential Palace amid the fierce clash between Song and Lien. Coupled with his dismal approval ratings and widespread distrust in the DPP’s economic management and governing prowess, these factors have become a formidable hurdle to effective governance. Moreover, he must also contend with the onslaught of the Red Dragon—Beijing’s unprecedented mistrust toward this once-unthinkable DPP government . Diplomatic battles for allied nations are old news, and the December 2001 Legislative Yuan elections along with the 2002 special municipal mayoral contests now loom as mid-term examinations for his presidency. In these perilous times, what course of action will President A-Bian choose?

" } } ] campaignTrail_temp.temp_election_list = [ { "id": 20, "year": 2004, "is_premium": 0, "display_year": "ROC'04 Bian." } ] e.collect_results = true; function changeOpponentSelectionDescription() { try { const opponentSelectionDescription = document.getElementById("opponent_selection_description_window"); opponentSelectionDescription.innerHTML = `

Use the default method of deciding the winner in the ROC presidential election.

In the ROC presidential election, the candidate who receives votes more than any other opponents is elected president. Regardless of the majority, you just need to have the most to win. For example, in the historical result of this election, Chen Shui-Bian won 50.11 percent of the vote, beating Lien Chan, who won only 49.89 percent of the vote.

`; } catch {} } window.setInterval(changeOpponentSelectionDescription,200) campaignTrail_temp.credits = "Phone_Tall(Soyorin) and thanks for the some codes from others" campaignTrail_temp.candidate_json = [ { "model": "campaign_trail.candidate", "pk": 67, "fields": { "first_name": "", "last_name": "Chen Shui Bian", "election": 20, "party": "Democratic Progressive Party", "state": "Tainan County", "priority": 1, "description": "
每一位福爾摩沙的子民都和阿扁一樣,都是「台灣之子」。——2000年就職演說

If you had said fifty years ago that a local kid from rural Tainan, a native Taiwanese, would one day become the President of the Republic of China, it would probably have been met with a round of laughter from the northern elites of Mainland descent. However, with the changing tides of history, that once-laughed-at kid grew up to become the highest leader of the country. Coming from a poor family in rural Tainan, he gradually rose to become a legislator and mayor of Taipei, and ultimately was elected President of Taiwan in 2000.

However, Chen Shui-bian’s first term was nothing short of a political circus. He initially claimed to bring “reform,” but under the banner of the Democratic Progressive Party, he ended up creating a chaotic political and economic mess. In 2001, Taiwan’s GDP recorded negative growth for the first time since 1947, and unemployment hit a historic high. His vague “Four Noes and One Without” policy neither calmed Beijing nor gained widespread support domestically. The factional infighting within the Democratic Progressive Party intensified, and the economic issues remained unresolved. In the Chiayi flood, the government watched as four victims were swept away, and only a few bodies were found.The position of this son of Taiwan seemed increasingly precarious.

things continued this way, by 2004, the KMT-PFP could easily kick him out of a position that never truly belonged to him. As a caretaker government, Chen Shui-bian has already become a has-been. By March 20, the Kuomintang will make a comeback, and the Democratic Progressive Party's one-term presidency will become a joke for a long time to come.

Unless the people vote to support him.

", "color_hex": "#1b9431", "secondary_color_hex": null, "is_active": 1, "image_url": "https://i.imgur.com/OQ3uV72.gif", "electoral_victory_message": "", "electoral_loss_message": "", "no_electoral_majority_message": "", "description_as_running_mate": null, "candidate_score": 1, "running_mate": false } }, { "model": "campaign_trail.candidate", "pk": 1002, "fields": { "first_name": "", "last_name": "Lu Hsiu-lien", "election": 20, "party": "Democratic Progressive Party", "state": "Taoyuan County", "priority": 1, "description": "

Put description here

", "color_hex": "#1b9431", "secondary_color_hex": null, "is_active": 0, "image_url": "https://i.imgur.com/tdtjD7z.gif", "electoral_victory_message": "", "electoral_loss_message": "", "no_electoral_majority_message": "", "description_as_running_mate": "

People often say that the vice president is the most useless position in the entire country. The constitution positions the vice president as just a backup — someone who steps in when the president is unable to fulfill their duties, serving as a figurehead until the president's term ends. Given that modern politics no longer has as many assassinations and untimely deaths, it seems that Lu Hsiu-lien would never gain real power. As Chen Shui-bian’s vice president, it seemed that she was chosen mostly because her role as the mayor of Taoyuan could reduce the impact of Hsu Hsin-liang’s independent candidacy, or perhaps to attract more female votes as a figurehead. Because of this, she was called the 'resentful palace concubine', and cartoonists mocked her as being useless. But you know, you can’t just abandon her. What kind of damage would it do to the DPP's election prospects if you were to abandon the woman who helped you create history halfway through?

", "candidate_score": 1, "running_mate": true } }, { "model": "campaign_trail.candidate", "pk": 68, "fields": { "first_name": "", "last_name": "Lien Chan", "election": 20, "party": "Chinese Kuomintang", "state": "Tainan City(Born in Xi'an)", "priority": 1, "description": "
中、日必將一戰,如生男則名連戰,寓有自強不息,克敵制勝,有復興故國、重整家園光明希望。—— 連横

1936, as Japan's aggression against China continued to escalate, a privileged young boy was born in the historic city of Xi'an. Lien Chan, a Taiwanese born on the mainland, came from a distinguished family. His father, Lien Zhendong, had served as the Minister of the Interior, while his grandfather, Lien Heng, was the renowned author of The General History of Taiwan. Raised in a wealthy and scholarly family, Lien Chan was naturally set on a path of public service.Though the Kuomintang, which was mainly led by mainlanders, saw him as a native Taiwanese, to the farmers, laborers, and rural citizens of Taiwan, he was seen as a 'half mountain'- a term used to describe Taiwanese who went to the mainland during the Japanese rule and became closely tied to the Kuomintang.

To this day, as one of the longest-serving members of the Kuomintang, Lien Chan has held various important positions, including Minister of Transportation, Minister of Foreign Affairs, Chairman of Taiwan Province, Premier, and, in 1996, was chosen by Lee Teng-hui to become Vice President. Yet, none of these roles were as enticing as the one known as POTROC, where the real power lay, offering the chance to leave a significant mark on Chinese history.

Perhaps it was the overwhelming popularity of Song Chu-yu, who refused to be your vice-presidential candidate, leading to that failure. Or maybe it was Lee Teng-hui, whom some would call an old madman, secretly advancing the agenda to 'abandon Lien to save Chen Shui-bian,' causing you to lose the presidency.hear that people said about you? 'helpless Adou', a nobleman who was out of touch with the world, could only obtain such a high position with the help of his poppy and the protection of President Lee. with the seal of the Kuomintang Chairman on hand, you know, that's not your were really looks like.

'...I am my own master!'

", "color_hex": "#1e1ec9", "secondary_color_hex": null, "is_active": 1, "image_url": "https://i.imgur.com/gdribXK.gif", "electoral_victory_message": "", "electoral_loss_message": "", "no_electoral_majority_message": "", "description_as_running_mate": null, "candidate_score": 1, "running_mate": false } }, { "model": "campaign_trail.candidate", "pk": 50001, "fields": { "first_name": "", "last_name": "Song Chu-Yu", "election": 20, "party": "People First Party", "state": "Born in Hunan", "priority": 1, "description": "

Put description here

", "color_hex": "#0000FF", "secondary_color_hex": null, "is_active": 0, "image_url": "https://i.imgur.com/rXsZFsA.gif", "electoral_victory_message": "", "electoral_loss_message": "", "no_electoral_majority_message": "", "description_as_running_mate": "

Have you ever been forced to do all the work only for someone else to reap the rewards? Chairman Song Chu-yu certainly has. In 2000, he lost by 300,000 votes to that pro-independence extremist, Chen Shui-bian. If it weren't for all that damn nonsense orchestrated by Lee Teng-hui—those scandalous, baseless stock allegations—and for Lien Chan dragging his feet behind, President Song would have been running the country by now.But the people made their choice, and due to the deep divisions within the Blue Camp, Chairman Song was forced to accept defeat.

In 2001, he founded the People First Party, attracting a large group of local councilors, legislators, and even some members from the New Party who had once supported the Kuomintang. Song's influence in politics is undeniable; yet, he chose to team up with Lien Chan—who was weaker and lacked personal charisma—as his Big Boss,He and you fought and attacked each other in 2000, with blood being shed.Perhaps this was a good pairing, as Song, coming from an Mainlander background, could compensate for Lien Chan's failure to appeal to mainlanders. However, if the vice president shines too brightly, he can easily eclipse the presidential candidate, sparking internal imbalances and conflict.

...Chairman Song, are you really so willing to play second fiddle to Adou?

", "candidate_score": 1, "running_mate": true } }, ] campaignTrail_temp.difficulty_level_json = JSON.parse ("[{\"model\": \"campaign_trail.difficulty_level\", \"pk\": 1, \"fields\": {\"name\": \"Very Easy\", \"multiplier\":1.5}}, {\"model\": \"campaign_trail.difficulty_level\", \"pk\": 2, \"fields\": {\"name\": \"Easy\", \"multiplier\": 1.25}}, {\"model\": \"campaign_trail.difficulty_level\", \"pk\": 3, \"fields\": {\"name\": \"Minor Easy\", \"multiplier\": 1.05}}, {\"model\": \"campaign_trail.difficulty_level\", \"pk\": 4, \"fields\": {\"name\": \"Normal\", \"multiplier\": 0.98}}, {\"model\": \"campaign_trail.difficulty_level\", \"pk\": 5, \"fields\": {\"name\": \"A little difficult\", \"multiplier\": 0.9}}, {\"model\": \"campaign_trail.difficulty_level\", \"pk\": 6, \"fields\": {\"name\": \"Harder\", \"multiplier\": 0.85}}, {\"model\": \"campaign_trail.difficulty_level\", \"pk\": 7, \"fields\": {\"name\": \"Struggle\", \"multiplier\": 0.8}}, {\"model\": \"campaign_trail.difficulty_level\", \"pk\": 8, \"fields\": {\"name\": \"Hard\", \"multiplier\": 0.78}}, {\"model\": \"campaign_trail.difficulty_level\", \"pk\": 9, \"fields\": {\"name\": \"Hell\", \"multiplier\": 0.75}}]"); campaignTrail_temp.running_mate_json = [ { "model": "campaign_trail.running_mate", "pk": 91377, "fields": { "candidate": 67, "running_mate": 1002 } }, { "model": "campaign_trail.running_mate", "pk": 123729, "fields": { "candidate": 68, "running_mate": 50001 } }, ] campaignTrail_temp.opponents_default_json = [ { "election": 20, "candidates": [ 67, 68 ] } ] campaignTrail_temp.opponents_weighted_json = [ { "election": 20, "candidates": [ 67, 68 ] } ] jet_data = { "headerColor": "#ffffff", "windowColor": "#efefef", "containerColor": "#ffffff", "innerWindowColor": "#E8FBFF", "bannerImageUrl": "https://i.imgur.com/2FZZqTw.png", "backgroundImageUrl": "https://i.imgur.com/q3C6wVC.jpeg", "endingTextColor": "#000000", "gameTitle": "Republic Of China Campaign Trail" } //#startcode corrr = `

AMERICAN CARNAGE

`; nct_stuff.themes[nct_stuff.selectedTheme].coloring_title = "#ffffff" nct_stuff.themes[nct_stuff.selectedTheme].coloring_window = "#efefef"; document.getElementsByClassName("game_header")[0].style.backgroundColor = nct_stuff.themes[nct_stuff.selectedTheme].coloring_title; document.getElementById("inner_window_1").children[1].innerHTML = `
  • Welcome to ROC'04 Bian.
  • A historical campaign story about the 10th President of the Republic of China, Chen Shui-bian, and his main opponent, KMT Chairman Lien Chan.
  • You will answer questions about his platforms, positions and campaign strategy, between the years 2002 and 2004.
  • The answers will affect his popularity, both nationally and in individual states.
  • These policies both their success and ideology will effect the candidate you face or use in the 2004 election.
  • Additionally, the game contains Choose Your Own Adventure elements, secret endings and achievements.
  • Please make sure to play the game under good network conditions and do not use automatic translation on the ending page.
  • It is recommended that you put on headphones and turn on the sound to enjoy the best audio-visual experience.
  • (You can directly click the next button, as long as there is no election result table, you can freely use the automatic translation)
  • `; $("#game_window")[0].style.backgroundColor = nct_stuff.themes[nct_stuff.selectedTheme].coloring_window; $(".container")[0].style.backgroundColor = "#ffffff"; document.getElementById("header").src = "https://i.imgur.com/2FZZqTw.png"; document.body.background = "https://i.imgur.com/PYl1ufa.gif"; document.head.innerHTML += ""; document.head.innerHTML += `` campaignTrail_temp.achievements = { } const div = document.getElementById('announcement'); if (div) { div.style.display = 'none'; // 隐藏(不占位) // div.style.visibility = 'hidden'; // 隐藏(占位) } $("#game_start").click((event) => { event.preventDefault(); $("#election_id_button").click((event) => { setInterval(changeFontColour, 200) }) }) e.runIntro = true; RecReading=true corrr = `

    `; // Select the node that will be observed for mutations const windowsAdvisorTargetNode = document.getElementById("game_window"); // Options for the observer (which mutations to observe) const windowsAdvisorConfig = { attributes: true, childList: true, subtree: true }; // Callback function to execute when mutations are observed const callback = (mutationList, observer) => { visitWindow = document.getElementsByClassName("overlay_window")[0]; if(visitWindow == null || visitWindow.classList.contains("done")) { return; } visitWindow.classList.add("done"); visitWindow.classList.add("window"); let titleBar = visitWindow.querySelector("h3"); titleBar.classList.add("title-bar"); titleBar.classList.add("title-bar-text") titleBar.style.paddingLeft = "3px"; }; class Song { constructor(title, artist, coverLink, audioLink) { this.title = title; this.artist = artist; this.coverLink = coverLink; this.audioLink = audioLink; } getTitle() { return this.title; } getArtist() { return this.artist; } getCoverLink() { return this.coverLink; } getAudioLink() { return this.audioLink; } } class Playlist { constructor() { // albums 数组,每个元素是一个专辑(歌曲数组) this.albums = []; this.currentAlbumIndex = 0; this.currentSongIndex = 0; this.loop = false; // 单曲循环状态 } addSong(song, albumIndex) { if (!this.albums[albumIndex]) { this.albums[albumIndex] = []; } this.albums[albumIndex].push(song); } getCurrentSong() { return this.albums[this.currentAlbumIndex][this.currentSongIndex]; } playNext() { if (this.loop) { return; // 单曲循环时不切换歌曲 } let album = this.albums[this.currentAlbumIndex]; this.currentSongIndex = (this.currentSongIndex + 1) % album.length; } playPrevious() { let album = this.albums[this.currentAlbumIndex]; this.currentSongIndex = (this.currentSongIndex - 1 + album.length) % album.length; } nextAlbum() { // 切换到下一个专辑,并重置歌曲索引 this.currentAlbumIndex = (this.currentAlbumIndex + 1) % this.albums.length; this.currentSongIndex = 0; } } window.Playlist = Playlist; window.Song = Song; function changePlaylist(newPlaylist) { playlist = newPlaylist; playlist.currentAlbumIndex = 0; playlist.currentSongIndex = 0; updateUI(playlist); const audio = document.getElementById("audio"); audio.src = playlist.getCurrentSong().audioLink; audio.play(); } window.changePlaylist = changePlaylist; function updateUI(playlist) { const currentSong = playlist.getCurrentSong(); var player = document.getElementById("player"); player.querySelector("#cover").src = currentSong.getCoverLink(); player.querySelector("#title").textContent = currentSong.getTitle(); player.querySelector("#artist").textContent = currentSong.getArtist(); } window.updateUI = updateUI; function setupMusicPlayer() { playlist = new Playlist(); // 专辑 0:添加 song1~song4 const song1 = new Song( "Green terrorists", "Luo Da-you", "https://upload.wikimedia.org/wikipedia/zh/f/fa/%E7%BE%8E%E9%BA%97%E5%B3%B6.jpg", "https://file.garden/Z9XHdyLGHwUEZPS4/Green%20terrorists.mp3?v=1742063530066" ); const song2 = new Song( "Youth Dance Music 2000 (Taiwan version)", "Luo Da-you", "https://i.imgur.com/ASbLWs0.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/2000.mp3?v=1742063560494" ); const song3 = new Song( "The Art of War", "David Tao", "https://upload.wikimedia.org/wikipedia/zh/thumb/4/46/The_great_leap.jpg/220px-The_great_leap.jpg", "https://file.garden/Z9XHdyLGHwUEZPS4/theArtOfWar.mp3?v=1742064134783" ); const song6 = new Song( "Long March", "Luo Da-you", "https://i.imgur.com/ASbLWs0.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E9%95%B7%E5%BE%81.mp3?v=1742066719166" ); const song5 = new Song( "Song Of Hero", "Zheng Zhi hua", "https://lineimg.omusic.com.tw/img/album/4138206.jpg?v=20210420191356", "https://file.garden/Z9XHdyLGHwUEZPS4/%E8%8B%B1%E9%9B%84%E4%B9%8B%E6%AD%8C.mp3?v=1742066449657" ); const song4 = new Song( "A Democracy Bumpkin", "Blacklist Studio", "https://i.kfs.io/album/global/57150293,0v1/fit/500x500.jpg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E6%B0%91%E4%B8%BB%E9%98%BF%E8%8D%89.mp3?v=1743192760953" ); const song7 = new Song( "Southern Taiwan Together", "Luo Da-you", "https://upload.wikimedia.org/wikipedia/zh/f/fa/%E7%BE%8E%E9%BA%97%E5%B3%B6.jpg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%8D%97%E5%8F%B0%E6%B9%BE%E4%BB%94%E5%85%B1.mp3?v=1742067048685" ); // 专辑 1:添加 song8~song14 const song8 = new Song( "Happy to Future Rap Young version", "Rap:老夫子(青春版)/謝志偉(活力版)", "https://i.discogs.com/34rDE2suyXF995XVBobUX-OFeceDL5QPgq-lW4bT1bw/rs:fit/g:sm/q:40/h:300/w:300/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTE5MjMz/ODY4LTE3MjcxMzA2/OTQtMTMyNS5qcGVn.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/03%20%E6%AD%A1%E5%96%9C%E7%9C%8B%E6%9C%AA%E4%BE%86(RAP%20version%E9%9D%92%E6%98%A5%E7%89%88).mp3?v=1742069130024" ); const song9 = new Song( "Taipei New HomeTown", "詞■路寒袖 曲■詹宏達", "https://i.imgur.com/HEaVtqB.png", "https://file.garden/Z9XHdyLGHwUEZPS4/%E8%A9%B9%E5%AE%8F%E9%81%94-%E5%8F%B0%E5%8C%97%E6%96%B0%E6%95%85%E9%84%89.mp3" ); const song10 = new Song( "Believe Taiwan", "詹宏達", "https://i.imgur.com/tjSXZoK.png", "https://file.garden/Z9XHdyLGHwUEZPS4/videoplayback.m4a" ); const song11 = new Song( "Spring stamens", "作詞:路寒袖 作曲:詹宏達", "https://i.imgur.com/g176BJE.png", "https://file.garden/Z9XHdyLGHwUEZPS4/%E6%98%A5%E5%A4%A9%E7%9A%84%E8%8A%B1%E8%95%8A.mp3?v=1742114411127" ); const song12 = new Song( "Promise of Century", "主唱:周恆毅 莊佳穎", "https://i.imgur.com/g176BJE.png", "https://file.garden/Z9XHdyLGHwUEZPS4/06%20%E4%B8%96%E7%B4%80%E4%B9%8B%E7%B4%84.mp3" ); const song13 = new Song( "Dreamers are the most beautiful", "詹宏達", "https://i.imgur.com/g176BJE.png", "https://file.garden/Z9XHdyLGHwUEZPS4/%E6%9C%89%E5%A4%A2%E6%9C%80%E7%BE%8E.mp3" ); const song14 = new Song( "Happiness March", "詹宏達", "https://i.imgur.com/g176BJE.png", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%B9%B8%E7%A6%8F%E9%80%B2%E8%A1%8C%E6%9B%B2.mp3" ); //泛蓝歌曲 const song15 = new Song( "Taiwan, it’s great to have you", "葉璦菱,Orange Blue(林正二,周守訓,黃健庭,謝章捷)", "https://i.imgur.com/Y7bdwzI.png", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%8F%B0%E7%81%A3%E6%9C%89%E4%BD%A0%E7%9C%9F%E5%A5%BD-%E7%B4%94%E6%AD%8C%E6%9B%B2%E7%89%88.mp3?v=1744574051673" ); const song16 = new Song( "Ode to the Republic of China", "Liu Chia-chang", "https://i.imgur.com/JHzkYBF.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E9%A0%8COde%20to%20the%20Republic%20of%20China%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E6%84%9B%E5%9C%8B%E6%AD%8C%E6%9B%B2.mp3?v=1745494393753" ); const song21 = new Song( "Plum Blossom", "Liu Chia-chang & Teresa Teng", "https://i.imgur.com/XReId9r.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E6%A2%85%E8%8A%B1%20-%20Plum%20Blossom.mp3?v=1747599311853" ); const song17 = new Song( "The Earth Thunders", "Lee Chien-Fu", "https://i.imgur.com/RAAbAqO.png", "https://file.garden/Z9XHdyLGHwUEZPS4/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E6%84%9B%E5%9C%8B%E6%AD%8C%E6%9B%B2%20%E5%A4%A7%E5%9C%B0%E4%B8%80%E8%81%B2%E9%9B%B7.mp3?v=1747597326980" ); const song18 = new Song( "Song of Memory of the Founding Father", "黎錦暉 戴傳賢", "https://imgur.com/KfL2aSM.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%9C%8B%E7%88%B6%E7%B4%80%E5%BF%B5%E6%AD%8C%20(1).mp3?v=1747597617713" ); const song19 = new Song( "Night Raid", "Huang Ying and Li Jian", "https://imgur.com/N7BTQpS.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%A4%9C%E8%A5%B2%20-%20Night%20Raid.mp3?v=1747597858834" ); const song20 = new Song( "True Colors of the Hakka", "Wu Po-hsiung", "https://imgur.com/y18lvso.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%AE%A2%E5%AE%B6%E6%9C%AC%E8%89%B2.mp3?v=1747613612417" ); //时代流行歌 const song22 = new Song( "Love me don't leave", "Chang Chen-yue", "https://i.imgur.com/i6bYSdv.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E6%84%9B%E6%88%91%E5%88%A5%E8%B5%B0.mp3?v=1747599095364" ); const song23 = new Song( "Ring Ring Ring", "S.H.E", "https://i.imgur.com/61zA51E.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/Ring%20Ring%20Ring%20S.H.E%20(%E6%AD%8C%E8%AF%8D%E7%89%88).mp3?v=1747600028942" ); const song24 = new Song( "In The Name of The Father", "Jay Chou", "https://i.imgur.com/dFJMwCL.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%91%A8%E6%9D%B0%E5%80%AB%E8%91%89%E6%83%A0%E7%BE%8E%E5%B0%88%E8%BC%AF01.%20%E4%BB%A5%E7%88%B6%E4%B9%8B%E5%90%8D%20%5B%E5%8B%95%E6%85%8B%E6%AD%8C%E8%A9%9E%5D.mp3?v=1747599596492" ); const song25 = new Song( "Don't wanna grow up", "S.H.E", "https://imgur.com/8Y3vOEN.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E4%B8%8D%E6%83%B3%E9%95%BF%E5%A4%A7%20S.H.E%20(%E6%AD%8C%E8%AF%8D%E7%89%88).mp3?v=1747599948511" ); const song26 = new Song( "Ai Qing 36 Ji", "Jolin Tsai", "https://imgur.com/Sc214ec.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E8%94%A1%E4%BE%9D%E6%9E%97%20Jolin%20Tsai%20-%20%E6%84%9B%E6%83%85%E4%B8%89%E5%8D%81%E5%85%AD%E8%A8%88.mp3?v=1747600244089" ); const song27 = new Song( "忠孝東路走九遍", "Power Station", "https://upload.wikimedia.org/wikipedia/zh/a/a6/%E5%BF%A0%E5%AD%9D%E6%9D%B1%E8%B7%AF%E8%B5%B0%E4%B9%9D%E9%81%8D.jpg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%8B%95%E5%8A%9B%E7%81%AB%E8%BB%8A%20Power%20Station%20%5B%20%E5%BF%A0%E5%AD%9D%E6%9D%B1%E8%B7%AF%E8%B5%B0%E4%B9%9D%E9%81%8D%20%5D%20Official%20Music%20Video.mp3?v=1747600390972" ); const song28 = new Song( "The Smile On Your Face", "F.I.R.", "https://i.imgur.com/N4XYd45.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/F.I.R.%E9%A3%9B%E5%85%92%E6%A8%82%E5%9C%98%20-%20%E4%BD%A0%E7%9A%84%E5%BE%AE%E7%AC%91(%E6%AD%8C%E8%A9%9E%E7%89%88).mp3?v=1747600565798" ); //台语 const song29 = new Song( "Air Alert", "Wu Bai & China Blue", "https://imgur.com/gGT6Y22.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E7%A9%BA%E8%A5%B2%E8%AD%A6%E5%A0%B1.mp3?v=1747600859169" ); const song30 = new Song( "Love Song 1939", "Luo Da-you", "https://i.imgur.com/9C9x88w.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E6%88%80%E6%9B%B21939.mp3?v=1747601016746" ); const song31 = new Song( "素蘭小姐要出嫁", "Wu Bai", "https://i.imgur.com/MQbUJmH.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E7%B4%A0%E8%98%AD%E5%B0%8F%E5%A7%90%E8%A6%81%E5%87%BA%E5%AB%81.mp3?v=1747601215834" ); const song32 = new Song( "青蚵嫂", "江蕙", "https://i.imgur.com/kighdUp.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E9%9D%92%E8%9A%B5%E5%AB%82.mp3?v=1747601823509" ); const song33 = new Song( "台北迎城隍", "Chen Lei", "https://i.imgur.com/BdPzuhn.jpeg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%8F%B0%E5%8C%97%E8%BF%8E%E5%9F%8E%E9%9A%8D.mp3?v=1747602316169" ); const song34 = new Song( "再會啊港都", "江蕙", "https://lh3.googleusercontent.com/r9iC9NfZGTD734FteswfoFqq0_NlxW7jiq65-9st7txl4csyRkLbnWFU6_CGFcF3ETeKcsrIciFShhkivg", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%86%8D%E6%9C%83%E5%95%8A%E6%B8%AF%E9%83%BD.mp3?v=1747602516489" ); const song35 = new Song( "快樂的出帆", "黃思婷", "https://lh3.googleusercontent.com/i4cbAsqvnBMKYoPimjrgInlQEeOw3JJD4AlNkr5ktcrjywe-Cbj7l1uiOBt0Y_Y-ULGNKxTKAETPBdk", "https://file.garden/Z9XHdyLGHwUEZPS4/%E5%BF%AB%E6%A8%82%E7%9A%84%E5%87%BA%E5%B8%86.mp3?v=1747602827120" ); // 将歌曲添加到对应专辑中 playlist.addSong(song1, 0); playlist.addSong(song2, 0); playlist.addSong(song3, 0); playlist.addSong(song6, 0); playlist.addSong(song5, 0); playlist.addSong(song4, 0); playlist.addSong(song7, 0); playlist.addSong(song8, 1); playlist.addSong(song9, 1); playlist.addSong(song10, 1); playlist.addSong(song11, 1); playlist.addSong(song12, 1); playlist.addSong(song13, 1); playlist.addSong(song14, 1); playlist.addSong(song15, 2); playlist.addSong(song16, 2); playlist.addSong(song17, 2); playlist.addSong(song18, 2); playlist.addSong(song19, 2); playlist.addSong(song20, 2); playlist.addSong(song21, 2); playlist.addSong(song22, 3); playlist.addSong(song23, 3); playlist.addSong(song24, 3); playlist.addSong(song25, 3); playlist.addSong(song26, 3); playlist.addSong(song27, 3); playlist.addSong(song28, 3); playlist.addSong(song29, 4); playlist.addSong(song30, 4); playlist.addSong(song31, 4); playlist.addSong(song32, 4); playlist.addSong(song33, 4); playlist.addSong(song34, 4); playlist.addSong(song35, 4); const playerContainer = document.createElement("div"); playerContainer.id = "player"; const displayBox = document.createElement("div"); displayBox.id = "display-box"; const coverElement = document.createElement("img"); coverElement.id = "cover"; displayBox.appendChild(coverElement); const infoContainer = document.createElement("div"); infoContainer.id = "info-container"; infoContainer.style.backgroundImage = "url('https://i.imgur.com/xyxCkA0.png')"; infoContainer.style.backgroundSize = "cover"; // Optional: adjust based on your needs infoContainer.style.color = "white"; // Set text color to white const songInfo = document.createElement("div"); songInfo.id = "song-info"; const titleElement = document.createElement("h3"); titleElement.id = "title"; titleElement.style.fontWeight = 'normal'; // Make it normal as per previous request songInfo.appendChild(titleElement); const artistElement = document.createElement("p"); artistElement.id = "artist"; songInfo.appendChild(artistElement); infoContainer.appendChild(songInfo); displayBox.appendChild(infoContainer); playerContainer.appendChild(displayBox); const controlsContainer = document.createElement("div"); controlsContainer.id = "controls-container"; const controls = document.createElement("div"); controls.id = "controls"; const prevButton = document.createElement("img"); prevButton.id = "prevButton"; prevButton.src = "https://i.imgur.com/jdfFCvo.png"; prevButton.alt = "Previous"; controls.appendChild(prevButton); const playPauseButton = document.createElement("img"); playPauseButton.id = "playPauseButton"; playPauseButton.src = "https://i.imgur.com/7ofdqdY.png"; // Set the default play image playPauseButton.alt = "Play/Pause"; controls.appendChild(playPauseButton); const nextButton = document.createElement("img"); nextButton.id = "nextButton"; nextButton.src = "https://i.imgur.com/B0ScI0A.png"; nextButton.alt = "Next"; controls.appendChild(nextButton); const nextalbum = document.createElement("img"); nextalbum.id = "nextalbum"; nextalbum.src = "https://i.imgur.com/NeUObQA.png"; nextalbum.alt = "album"; controls.appendChild(nextalbum); const loopButton = document.createElement("img"); // 单曲循环按钮 loopButton.id = "loopButton"; loopButton.src = "https://i.imgur.com/PGcDNau.png"; // 请替换为实际的图标 loopButton.alt = "Loop"; controls.appendChild(loopButton); controlsContainer.appendChild(controls); function updateProgressBar(value) { const progressBar = document.getElementById('progress-bar'); progressBar.style.setProperty('--fill-width', `${value}%`); } // 示例:模拟进度更新 let progress = 0; setInterval(() => { progress += 1; if (progress > 100) progress = 0; // 循环重置 updateProgressBar(progress); }, 100); playPauseButton.addEventListener("click", function () { const audio = document.getElementById("audio"); if (audio.paused) { audio.play(); playPauseButton.src = "https://i.imgur.com/7ofdqdY.png"; // Set the pause image } else { audio.pause(); playPauseButton.src = "https://i.imgur.com/F5Cd7o6.png"; // Set the play image } }); nextButton.addEventListener("click", function () { playlist.playNext(); updateUI(playlist); const audio = document.getElementById("audio"); audio.src = playlist.getCurrentSong().audioLink; audio.play(); }); nextalbum.addEventListener("click", function () { playlist.nextAlbum(); updateUI(playlist); const audio = document.getElementById("audio"); audio.src = playlist.getCurrentSong().audioLink; audio.play(); }); prevButton.addEventListener("click", function () { playlist.playPrevious(); updateUI(playlist); const audio = document.getElementById("audio"); audio.src = playlist.getCurrentSong().audioLink; audio.play(); }); loopButton.addEventListener("click", function () { // 单曲循环按钮事件 playlist.loop = !playlist.loop; loopButton.src = playlist.loop ? "https://i.imgur.com/Ssx40A9.png" : "https://i.imgur.com/PGcDNau.png"; // 请替换为实际的图标 }); const progressBarContainer = document.createElement("div"); progressBarContainer.id = "progress-bar-container"; const progressBar = document.createElement("input"); // 改为 input type="range" progressBar.type = "range"; progressBar.id = "progress-bar"; progressBar.value = "0"; progressBar.min = "0"; progressBar.max = "100"; progressBar.step = "0.1"; progressBarContainer.appendChild(progressBar); controlsContainer.appendChild(progressBarContainer); playerContainer.appendChild(controlsContainer); const volumeContainer = document.createElement("div"); volumeContainer.id = "volume-container"; const volumeLabel = document.createElement("img"); volumeLabel.src = "https://i.imgur.com/1iKbM8E.png"; volumeLabel.alt = "Volume"; volumeContainer.appendChild(volumeLabel); const volumeSliderContainer = document.createElement("div"); volumeSliderContainer.classList.add("is-vertical"); volumeSliderContainer.style.marginLeft = "0%"; volumeSliderContainer.style.height = "126px"; const volumeSlider = document.createElement("input"); volumeSlider.type = "range"; volumeSlider.id = "volumeSlider"; volumeSlider.min = 0; volumeSlider.max = 9; volumeSlider.step = 1; volumeSlider.value = 5; // Initial volume volumeSliderContainer.appendChild(volumeSlider); const volumeDisplay = document.createElement("span"); volumeDisplay.id = "volume-display"; volumeDisplay.style.fontWeight = 'bold'; volumeDisplay.style.display = 'none'; volumeDisplay.textContent = "1"; volumeContainer.appendChild(volumeSliderContainer); volumeContainer.appendChild(volumeDisplay); playerContainer.appendChild(volumeContainer); gameWindow_player.insertAdjacentElement("afterend", playerContainer); function updateProgressBar() { const audio = document.getElementById("audio"); const progress = (audio.currentTime / audio.duration) * 100; progressBar.value = isNaN(progress) ? 0 : progress; } progressBar.addEventListener("input", function () { // 拖动进度条事件 const audio = document.getElementById("audio"); const seekTime = (progressBar.value / 100) * audio.duration; audio.currentTime = isNaN(seekTime) ? 0 : seekTime; }); const audio = document.createElement("audio"); audio.id = "audio"; audio.src = playlist.getCurrentSong().audioLink; audio.volume = 1/9; audio.play().catch(err => { if (err.name !== 'AbortError') { console.error('播放失败:', err); } // AbortError 可以安全忽略 }); audio.addEventListener("timeupdate", updateProgressBar); audio.addEventListener("ended", function () { // Play the next song when the current song ends playlist.playNext(); updateUI(playlist); audio.src = playlist.getCurrentSong().audioLink; audio.play(); }); let currentVolume = 5; // Initial volume volumeSlider.addEventListener("input", function () { currentVolume = parseInt(volumeSlider.value, 10); updateVolumeDisplay(); updateAudioVolume(); }); function updateVolumeDisplay() { volumeDisplay.textContent = currentVolume; } function updateAudioVolume() { const audio = document.getElementById("audio"); audio.volume = currentVolume / 9; // Set volume between 0 and 1 } document.body.appendChild(audio); audio.play(); // Update the UI when the page loads updateUI(playlist); } const style = document.createElement("style"); style.textContent = ` #player { border: 3px solid #C9C9C9; /* Add your desired border style */ display: flex; flex-direction: row; height:191px; background-Image: url("https://i.imgur.com/CweYzgR.png"); } #volume-container{ margin-top:10px } #display-box { display: flex; align-items: center; width: 50%; } #cover { width: 176px; height:176px; } #info-container { display: flex; flex-direction: row; height:178px; width:127px; margin-top: 3px; } #song-info { width: 100%; padding:5px; } #state_info { height:auto; } #overall_result_container { height:auto; } #controls-container { display: flex; flex-direction: column; align-items: center; margin: 10px; width:100%; padding-top:15px; } .is-vertical #volumeSlider { margin-top: 38px; -webkit-appearance: none; appearance: none; height: 15%; /* 音量条的高度 */ background: linear-gradient(to bottom, #d4d0c8, #f1f1f1); /* XP 背景 */ border-radius: 5px; border: 2px solid #808080; box-shadow: inset 2px 2px 3px rgba(0, 0, 0, 0.3); transform: rotate(270deg); /* 将音量条旋转90度,实现垂直显示 */ transform-origin: center center; /* 保持旋转的中心 */ } .is-vertical #volumeSlider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; background: green; /* 改为绿色 */ border-radius: 50%; border: 2px solid #808080; box-shadow: 0px 0px 5px rgba(255, 255, 255, 0.6); cursor: pointer; } .is-vertical #volumeSlider::-moz-range-thumb { width: 18px; height: 18px; background: green; /* 改为绿色 */ border-radius: 50%; border: 2px solid #808080; box-shadow: 0px 0px 5px rgba(255, 255, 255, 0.6); cursor: pointer; } #overall_vote_statistics { } .final_results_table tbody tr:nth-child(2) td:first-child { background-image: url(https://i.imgur.com/1uBGXls.png); background-repeat: no-repeat; background-position: right; background-size: contain; } #overall_election_details tbody tr:nth-child(2) td:first-child { background-image: url(https://i.imgur.com/1uBGXls.png); background-repeat: no-repeat; background-position: right; background-size: contain; } #results_container { color: white; overflow: auto; } #controls { display: flex; flex-direction: row; justify-content: center; width: 80%; } .person_image { position: sticky; top: 16px; align-self: flex-start; z-index: 1; float: left; margin: 1.2em 1em 0; border: double; border-color: #C9C9C9; height: 250px; } #progress-bar-container { width: 80%; /* 与原代码一致 */ height: 18px; /* 调大高度,从 18px 增加到 24px */ background: linear-gradient(to bottom, #d4d0c8, #f1f1f1); /* 原容器背景 */ border: 2px solid #808080; /* 原边框 */ border-radius: 5px; /* 原圆角 */ padding: 2px; /* 移除内边距以消除空隙 */ box-shadow: inset 2px 2px 2px rgba(0, 0, 0, 0.2); /* 原阴影 */ // box-sizing: border-box; /* 确保边框包含在尺寸内 */ } #progress-bar { width: 100%; height: 100%; /* 充满容器高度 */ -webkit-appearance: none; appearance: none; background: transparent; /* 背景透明,显示容器背景 */ border: none; /* 移除边框 */ margin: 0; /* 移除边距 */ // border-radius: 5px; /* 与容器一致 */ overflow: hidden; /* 防止溢出 */ display: block; /* 确保占满容器 */ } #progress-bar::-webkit-slider-runnable-track { width: 100%; height: 100%; /* 轨道充满容器 */ background: #888; /* 未填充部分的灰色背景 */ margin: 0; /* 移除轨道边距 */ } #progress-bar::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 0; /* 隐藏滑块 */ height: 0; /* 隐藏滑块 */ background: transparent; /* 透明背景 */ box-shadow: -100vw 0 0 100vw green; /* 绿色填充整个左侧 */ } #progress-bar::-moz-range-track { width: 100%; height: 100%; /* 轨道充满容器 */ background: #A9A9A9; /* 未填充部分的灰色背景 */ border-radius: 5px; } #progress-bar::-moz-range-progress { background: green; /* 填充部分为绿色 */ height: 100%; /* 充满轨道高度 */ border-radius: 5px; } #progress-bar::-moz-range-thumb { width: 0; /* 隐藏滑块 */ height: 0; /* 隐藏滑块 */ background: transparent; /* 透明背景 */ } #progress-bar::-webkit-slider-thumb, #progress-bar::-moz-range-progress { transition: all 0.3s ease; /* 平滑过渡 */ } `; document.head.appendChild(style); const gameWindow_player = document.getElementById("game_window"); //use this function directly or put it in an event listener to start the music on the press of a certain button setupMusicPlayer(); function createBanner(url, sibling, isLeft) { let div = document.createElement("DIV"); let img = document.createElement("IMG"); div.style.position = "relative"; div.style.margin = "auto"; img.src = url; let x = document.createElement("DIV"); x.innerText = "✕"; x.style.position = "absolute"; x.style.top = "0px"; x.style.left = "0px"; x.style.padding = "0px 2px"; x.style.fontSize = "9px"; x.style.fontWeight = "bold"; x.style.fontFamily = "Arial, sans-serif"; x.style.color = "black"; x.style.backgroundColor = "#ccc"; x.style.border = "1px solid #666"; x.style.cursor = "pointer"; x.style.zIndex = "9999"; x.style.userSelect = "none"; x.style.lineHeight = "12px"; x.addEventListener("click", function() { div.removeChild(x); }); div.appendChild(x); div.appendChild(img); if(isLeft) { sibling.parentNode.insertBefore(div, sibling); } else { sibling.parentNode.appendChild(div); } // x.onclick = () => div.style.visibility = "hidden"; // x.onclick = () => img.style.visibility = "hidden"; // x.onclick = () => { // img.remove(); // 直接把 从文档中删除 // // 或者,如果你还想把它的父容器也删掉: // // div.remove(); // }; x.addEventListener("mousedown", function(e) { e.stopPropagation(); if (div && div.parentNode) { div.parentNode.removeChild(div); } }); return img; } //侧边广告 let contentBox = document.getElementsByClassName("content_box")[0]; let contentSingle = document.getElementsByClassName("content_single")[0]; let containerRef = document.getElementsByClassName("container")[0]; function createBanner(url, sibling, isLeft) { let div = document.createElement("DIV"); let img = document.createElement("IMG"); div.style.position = "relative"; div.style.margin = "auto"; img.src = url; let x = document.createElement("DIV"); x.innerText = "✕"; x.style.position = "absolute"; x.style.top = "0px"; x.style.left = "0px"; x.style.padding = "0px 2px"; x.style.fontSize = "9px"; x.style.fontWeight = "bold"; x.style.fontFamily = "Arial, sans-serif"; x.style.color = "black"; x.style.backgroundColor = "#ccc"; x.style.border = "1px solid #666"; x.style.cursor = "pointer"; x.style.zIndex = "9999"; x.style.userSelect = "none"; x.style.lineHeight = "12px"; x.addEventListener("click", function() { div.removeChild(x); }); div.appendChild(x); div.appendChild(img); if(isLeft) { sibling.parentNode.insertBefore(div, sibling); } else { sibling.parentNode.appendChild(div); } // x.onclick = () => { // img.remove(); // 直接把 从文档中删除 // // 或者,如果你还想把它的父容器也删掉: // // div.remove(); // }; x.addEventListener("mousedown", function(e) { e.stopPropagation(); if (div && div.parentNode) { div.parentNode.removeChild(div); } }); return img; } //抄的,先暂时不用,版面太小而且问题跳来跳去,保留着以后备用 async function appendStyle() { var metaTag=document.createElement('meta'); metaTag.name = "viewport"; metaTag.content = "width=device-width, initial-scale=1"; document.getElementsByTagName('head')[0].appendChild(metaTag); if (!document.querySelector('#radio-option-style')) { let style = document.createElement('style'); style.type = 'text/css'; style.id = 'radio-option-style'; style.innerHTML = ` .inner_inner_window { display: flex; flex-direction: column; } .inner_window_question { height: 337px; } `; document.head.appendChild(style); } } appendStyle(); function addDynamicCSS() { var css = ` .inner_window_question h3 .mytooltip{ background-color: lightskyblue; } .inner_window_question h3 { background: linear-gradient(to bottom, #f9f9f9, #eff1ff, #e4e4e4); } .mytooltip { position: relative; display: inline-block; cursor: pointer; background-color: #d8dee8; } .mytooltip .mytooltiptext { width: 240px; background-color: #d8dee8; color: black; text-align: center; border-radius: 6px; padding: 10px; position: absolute; z-index: 99; bottom: 20%; left: 20%; margin-left: -90px; opacity: 0; transition: opacity 0.3s; border: 1px solid black; pointer-events: none; font-size: 13px !important; line-height: 1.5em !important; font-weight: normal !important; font-style: normal !important; } #results_container { color:white; } #overall_details_container h3 { color: white; } #overall_election_details h4 { color: white; } .mytooltip .mytooltiptext img { max-width: 240px; height: auto; } .mytooltip:hover .mytooltiptext { opacity: 1; transition-delay: 0.5s; } .overlay_window img { border-color:black; } #visit_content img { opacity: 0.95; width: 260px; height: auto; border: 1px solid transparent; outline: 1px solid #201F1A; box-shadow: none !important; } `; var styleElem = document.createElement('style'); styleElem.type = 'text/css'; styleElem.appendChild(document.createTextNode(css)); document.head.appendChild(styleElem); } const xpScrollStyle = document.createElement('style'); xpScrollStyle.textContent = `body *::-webkit-scrollbar { width: 16px; height: 16px; background: none; } body *::-webkit-scrollbar-thumb, body *::-webkit-scrollbar-button { width: 16px; height: 16px; background: silver; box-shadow: inset 1px 1px #dfdfdf, inset -1px -1px gray; border: 1px solid; border-color: silver #000 #000 silver; } body *::-webkit-scrollbar-track { image-rendering: optimizeSpeed; image-rendering: pixelated; image-rendering: optimize-contrast; background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgLTAuNSAyIDIiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+CjxtZXRhZGF0YT5NYWRlIHdpdGggUGl4ZWxzIHRvIFN2ZyBodHRwczovL2NvZGVwZW4uaW8vc2hzaGF3L3Blbi9YYnh2Tmo8L21ldGFkYXRhPgo8cGF0aCBzdHJva2U9IiNjMGMwYzAiIGQ9Ik0wIDBoMU0xIDFoMSIgLz4KPC9zdmc+"); background-position: 0 0; background-repeat: repeat; background-size: 2px; } body *::-webkit-scrollbar-button { background-repeat: no-repeat; background-size: 16px; } body *::-webkit-scrollbar-button:single-button:vertical:decrement { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgLTAuNSAxNiAxNiIgc2hhcGUtcmVuZGVyaW5nPSJjcmlzcEVkZ2VzIj4KPG1ldGFkYXRhPk1hZGUgd2l0aCBQaXhlbHMgdG8gU3ZnIGh0dHBzOi8vY29kZXBlbi5pby9zaHNoYXcvcGVuL1hieHZOajwvbWV0YWRhdGE+CjxwYXRoIHN0cm9rZT0iIzAwMDAwMCIgZD0iTTcgNWgxTTYgNmgzTTUgN2g1TTQgOGg3IiAvPgo8L3N2Zz4="); } body *::-webkit-scrollbar-button:single-button:vertical:increment { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgLTAuNSAxNiAxNiIgc2hhcGUtcmVuZGVyaW5nPSJjcmlzcEVkZ2VzIj4KPG1ldGFkYXRhPk1hZGUgd2l0aCBQaXhlbHMgdG8gU3ZnIGh0dHBzOi8vY29kZXBlbi5pby9zaHNoYXcvcGVuL1hieHZOajwvbWV0YWRhdGE+CjxwYXRoIHN0cm9rZT0iIzAwMDAwMCIgZD0iTTQgNWg3TTUgNmg1TTYgN2gzTTcgOGgxIiAvPgo8L3N2Zz4="); } body *::-webkit-scrollbar-button:single-button:horizontal:decrement { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgLTAuNSAxNiAxNiIgc2hhcGUtcmVuZGVyaW5nPSJjcmlzcEVkZ2VzIj4KPG1ldGFkYXRhPk1hZGUgd2l0aCBQaXhlbHMgdG8gU3ZnIGh0dHBzOi8vY29kZXBlbi5pby9zaHNoYXcvcGVuL1hieHZOajwvbWV0YWRhdGE+CjxwYXRoIHN0cm9rZT0iIzAwMDAwMCIgZD0iTTggM2gxTTcgNGgyTTYgNWgzTTUgNmg0TTYgN2gzTTcgOGgyTTggOWgxIiAvPgo8L3N2Zz4="); } body *::-webkit-scrollbar-button:single-button:horizontal:increment { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgLTAuNSAxNiAxNiIgc2hhcGUtcmVuZGVyaW5nPSJjcmlzcEVkZ2VzIj4KPG1ldGFkYXRhPk1hZGUgd2l0aCBQaXhlbHMgdG8gU3ZnIGh0dHBzOi8vY29kZXBlbi5pby9zaHNoYXcvcGVuL1hieHZOajwvbWV0YWRhdGE+CjxwYXRoIHN0cm9rZT0iIzAwMDAwMCIgZD0iTTYgM2gxTTYgNGgyTTYgNWgzTTYgNmg0TTYgN2gzTTYgOGgyTTYgOWgxIiAvPgo8L3N2Zz4="); } body *::-webkit-scrollbar-corner { background: silver; }`; document.head.appendChild(xpScrollStyle); const win98BtnStyle = document.createElement('style'); win98BtnStyle.textContent = ` /* 针对所有按钮及 input[type=button|submit|reset] */ button, input[type="button"], input[type="submit"], input[type="reset"] { /* 字体和大小 */ font-family: "MS Sans Serif", Tahoma, sans-serif; font-size: 12px; color: #000; /* 背景和边框 */ background-color: #C0C0C0; /* Win98 系统灰 */ border: 2px outset #FFF; /* 外凸边框 */ /* 内边距 & 大小 */ padding: 2px 8px; line-height: 1.2; cursor: pointer; /* 去除浏览器默认阴影 */ box-shadow: none; } /* 鼠标悬停略微加深以示可点击 */ button:hover, input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover { background-color: #D4D0C8; } /* 按下时凹陷 */ button:active, input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active { border-style: inset; background-color: #C0C0C0; } /* 获得焦点时的虚线框(Win98 风格) */ button:focus, input[type="button"]:focus, input[type="submit"]:focus, input[type="reset"]:focus { outline: 1px dotted #000; } /* 可选:禁用状态 */ button:disabled, input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled { background-color: #E0E0E0; color: #808080; border: 2px outset #FFF; cursor: default; } `; document.head.appendChild(win98BtnStyle); const win98FormStyle = document.createElement('style'); win98FormStyle.textContent = `/* 通用字体 */ .windows98-ui { font-family: "MS Sans Serif", Tahoma, sans-serif; font-size: 12px; color: #000; } /* —— 下拉框 Select —— */ select { font-family: inherit; font-size: inherit; color: inherit; background-color: #C0C0C0; border: 2px outset #FFF; /* 左右内边距,右侧留出给箭头 */ padding: 2px 20px 2px 4px; appearance: none; -webkit-appearance: none; -moz-appearance: none; /* 箭头放在更右侧 */ background-image: url("data:image/svg+xml;charset=UTF-8,"); background-repeat: no-repeat; background-position: right 6px center; } /* IE 下隐藏自带箭头 */ select::-ms-expand { display: none; } select:focus { outline: 1px dotted #000; } select { color:black; } select:disabled { background-color: #E0E0E0; color: #808080; cursor: default; } /* 如果需要更平整的箭头位置,可微调内边距 */ select::-ms-expand { display: none; } /* —— 表格 Table —— */ /* 让所有表格单元格都用 border-box */ table, th, td { box-sizing: border-box; } /* 整体表框改为 1px groove,不影响宽度 */ table { border-collapse: collapse; /* 合并边框 */ border: 1px groove #C0C0C0; /* 从 2px 改为 1px */ background-color: #FFF; } /* 交替行和 hover 样式不变 */ table tr:nth-child(even) td { background-color: #F0F0F0; } table tr:hover td { background-color: #C0C0C0; }`; document.head.appendChild(win98FormStyle); const win98FontStyle = document.createElement('style'); win98FontStyle.textContent = ` /* 全局 Windows 98 系统字体 */ html, body, button, input, select, textarea, table, th, td, h1, h2, h3, h4, h5, h6, p, span, div, a, li { font-family: "MS Sans Serif", Tahoma, Arial, sans-serif; } #final_results_description h3{ font-size: 1em; } label { font-family: inherit; } /* 如果需要更像像素字体,可以加上 */ body { -webkit-font-smoothing: none; -moz-osx-font-smoothing: grayscale; } .content_single p{ line-height: 1.3em; } .css-id.css-id{ background-color: #ffffff; padding: 24px; border: 4px double #bababa; font-family: 'Times New Roman', serif; color: #273450; box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); margin: 1rem auto; max-width: 610px; line-height: 1.6; margin-right: 1em; } .css-id h3{ font-family: 'Times New Roman', serif; } .css-id p{ font-family: 'Times New Roman', serif; } .css-id h1{ font-family: 'Times New Roman', serif; } .css-id h2{ font-family: 'Times New Roman', serif; } .css-id span{ font-family: 'Times New Roman', serif; } `; document.head.appendChild(win98FontStyle); addDynamicCSS(); //查找字符串并显示图片 tooltipList = [ {searchString: "Minguo 92", explanationText: "The Beginning of the Republic"}, {searchString: "Last month's mayoral election", explanationText: "Draw?"}, {searchString: "Republic of China", explanationText: "Revolution and Change"}, {searchString: "Huang Fuxing faction", explanationText: "Almost all members of the Huangfuxing are mainlanders who came from military dependents' villages. The most famous representatives in the past decade or so are Xu Linong and others. The New Party is usually seen as having a deeper relationship with the Huangfuxing. Because it is based on conservative ideology, it is regarded as an important representative of the conservative forces within the KMT amid the calls for reform."}, {searchString: "President of the Republic of China", explanationText: "The most responsible position"}, {searchString: "People First Party", explanationText: "Chairman Song and his friends' private club"}, {searchString: "Legislative Yuan", explanationText: "This is a battlefield without gunpowder. Since the National Assembly is no longer in operation, it has become a de facto one-chamber parliament."}, {searchString: "overwhelming lead in the polls", explanationText: ""}, {searchString: "Judicial Yuan", explanationText: " Our Supreme Court Justices have a term limit. They don't have to wait until a president from the same party takes office before they die!"}, {searchString: "Examination Yuan", explanationText: "The Five-Power Constitution was the creation of the founding father"}, {searchString: "Control Yuan.", explanationText: "Be careful, corruption among public officials, bureaucrats and civil servants is happening all around you."}, {searchString: "SARS", explanationText: "Humans have no idea of ​​the power of viruses!"}, {searchString: "At today’s press cconference", explanationText: "A Win-Win situation."}, {searchString: "WHO", explanationText: "There is no Taiwan in the world of the World Health Organization."}, {searchString: "WHA", explanationText: "Taiwan has no affinity with international assemblies either."}, {searchString: "Longmen nuclear power plant", explanationText: "Is this nuclear power plant going to be built or not?"}, {searchString: "Tainan’s beef soup", explanationText: "Yummy Yummy"}, {searchString: "Hualien County Magistrate Zhang Fuxing", explanationText: " R.I.P"}, {searchString: "Xie Shenshan", explanationText: ""}, {searchString: "You Yinglong", explanationText: ""}, {searchString: "You Ying-lung", explanationText: ""}, {searchString: "Taiwan Solidarity Union", explanationText: "After being president for 12 years, will he continue to use political parties to interfere in Taiwan's politics? Grandpa Lee, go home and hug your kids."}, {searchString: "Bush", explanationText: "Dubya!"}, {searchString: "2000 presidential election", explanationText: "Shame."}, {searchString: "Sun Yat-sen", explanationText: "國父"}, {searchString: "North Macedonia", explanationText: "A small country in the former Yugoslavia that fears pressure from the Chinese Communist Party."}, {searchString: "Nauru", explanationText: "Smaller than Taiwan, but with an appetite bigger than the sky."}, {searchString: "Liberia", explanationText: "Having one star and thirteen stripes on the flag does not make you American. Not even for one state."}, {searchString: "United Kingdom", explanationText: "Good friends who can't help us."}, {searchString: "United States", explanationText: "Thanks to the Seventh Fleet, we have secured the Taiwan Strait."}, {searchString: "Japan", explanationText: "Love them? Hate them?"}, {searchString: "France", explanationText: "Mirage 2000, La Fayette-class frigate, another major arms seller outside the United States."}, {searchString: "William Cohen", explanationText: ""}, {searchString: "Clinton", explanationText: ""}, {searchString: "Zhang Rongwei", explanationText: "The local boss in Yunlin County. The embodiment of the Kuomintang's political machine in the South. Don't offend him."}, {searchString: "knelt and wept", explanationText: ""}, {searchString: "2001 Legislative Yuan elections", explanationText: ""}, {searchString: "First Lady Wu Shuzhen", explanationText: "A-Bian's wife. A woman who loves to make money."}, {searchString: "The Legend of Wealth Among Two Generations of Civil Servants", explanationText: ""}, {searchString: "Jay Chou", explanationText: "Promising young man"}, {searchString: "S.H.E", explanationText: "Girls full of energy"}, {searchString: "first-ever presidential candidate debate", explanationText: "Always remember"}, {searchString: "first-ever televised debate", explanationText: "This is my battlefield!"}, {searchString: "Xiao Guai", explanationText: "Precious"}, {searchString: "Lian Fangyu", explanationText: "Precious"}, {searchString: "Cai Kangyong", explanationText: "If your son says he is gay, what would you do? Well... first of all, we certainly can't say he is sick..."}, {searchString: "Kangxi is Coming", explanationText: "One of the most popular TV shows in Taiwan....was."}, {searchString: "CTi TV", explanationText: "Our media."}, {searchString: "fired two bullets", explanationText: "What a Hell?!"}, {searchString: "kissing the earth", explanationText: "Love Taiwan!"}, {searchString: "Hsu Hsin-liang", explanationText: ""}, {searchString: "Sun Yun-suan", explanationText: "Great man"}, {searchString: "Chen Youhao", explanationText: ""}, {searchString: "Zhu Wanqing", explanationText: "In October 2000, Zhu Wanqing was accused of embezzling NT$16 million from the Central Broadcasting Station’s “Relocation and Equipment Purchase Reserve,” allegedly using the funds to pay Kuomintang party fees and to renovate her private residence. On December 6, 2000, Zhu Wanqing was prosecuted by Prosecutor Zhu Wende of the Taipei District Prosecutors Office under the charge of “misappropriation of business funds” in accordance with the Criminal Code of the Republic of China, with a sentence of 1 year and 2 months being sought."}, {searchString: "Liang Boxun", explanationText: "Liang Boxun, the former head of Xinxi Zhong Construction, who fled to China, is currently wanted by the Taipei High Prosecutors Office and four local prosecutors’ offices in connection with 11 cases."}, {searchString: "Chen Youhao", explanationText: "A Taiwanese entrepreneur—the founder and president of the Dongdis Group and a former Central Standing Committee member of the Kuomintang—was implicated in an embezzlement case and alleged breach of trust, and subsequently fled Taiwan in 2002."}, {searchString: "Wu Zeyuan", explanationText: "In March 2001, the Banqiao District Prosecutors Office in Taiwan concluded its investigation into the fraud case involving the egg-shaped digestion tank project at the Bali Sewage Treatment Plant. Wu Zeyuan was charged with, during his tenure as Director of the Housing and Urban Development Bureau of the Taiwan Provincial Government, allegedly manipulating project budgets to benefit specific companies to the tune of NT$1.4 billion. He was prosecuted on charges of “joint fraud in public works contracts” and “accepting bribes in violation of official duties,” with a sentence of 15 years imprisonment and a deprivation of political rights for 7 years being sought."}, {searchString: "You Si Kun", explanationText: ""}, {searchString: "Tsai Ing-wen", explanationText: ""}, {searchString: "Chen Ding-nan", explanationText: ""}, {searchString: "Chen Tang-shan", explanationText: ""}, {searchString: "Yeh Chu-lan", explanationText: ""}, {searchString: "Su Tseng chang", explanationText: ""}, {searchString: "Hsieh Chang ting", explanationText: ""}, {searchString: "Doraemon", explanationText: "Kids Love it!"}, {searchString: "Suneo", explanationText: "Bad Boy"}, {searchString: "teachers, laborers, and farmers", explanationText: ""}, {searchString: "Su Huan‑chih", explanationText: ""}, {searchString: "Lee Teng-hui", explanationText: ""}, {searchString: "Wang Jing-ping", explanationText: " President of the Legislative Yuan"}, {searchString: "Formosa Faction", explanationText: "One of the factions within the DPP, a political party in Taiwan. It is mainly composed of party members who participated in the Formosa Magazine and the Formosa Incident during the past non-party movement era. Its main members include Huang Hsin-chieh, Hsu Hsin-liang, Shih Ming-teh, Chang Jun-hong, etc. Formosa advocates the promotion of elections and parliamentary lines, trying to use this as a way to gain policy influence. It believes that the Taiwanese people have the freedom to advocate independence or unification, and that cross-strait relations must also be taken into account. In 1999, with Hsu Hsin-liang's withdrawal from the party, the faction quickly declined."}, {searchString: "Issue 144 of Taiwan", explanationText: ""}, {searchString: "Lien Huixin’s", explanationText: ""}, {searchString: "February 28 memorial day", explanationText: ""}, {searchString: "Ma Ying-jeou", explanationText: "Rising Star"}, //the 2002 mayoral elections {searchString: "the 2002 mayoral elections.", explanationText: "Draw?"}, {searchString: "Hu Chih-chiang", explanationText: ""}, {searchString: "Wang Yung‑ching", explanationText: "Business people"}, {searchString: "President Lee Yuan‑tseh", explanationText: "DPP's Friend?"}, {searchString: "Paraguay", explanationText: "Do the opposite"}, {searchString: "Republic of Kiribati", explanationText: "I can't find it on the map!"}, {searchString: "Panama", explanationText: "Useful Allies"}, {searchString: "Chiou I-jen", explanationText: "has a thousand tricks in his head."}, {searchString: "Shen Fu‑hsiung", explanationText: "The dissenters in the party"} ]; campaignTrail_temp.banner1 = createBanner("https://i.imgur.com/buQWweL.gif", containerRef, true); campaignTrail_temp.banner2 = createBanner("https://i.imgur.com/KTCzVFH.jpeg", containerRef, false); campaignTrail_temp.modBoxTheme = { "header_color": "#004db3", "header_image_url": "https://file.garden/Z9XHdyLGHwUEZPS4/%E4%B8%8B%E8%BD%BD%20(3).png", "header_text_color": "#ffffff", "description_text_color": "#000000", "description_background_color": "#e0e0e0", "main_color": "#d4d4d4", "secondary_color": "#198754" } //#endcode