1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <title>Klondike Solitaire Games - FREE | Voted BEST of: 2024 - 2019</title> 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta content="width=device-width, initial-scale=1, minimum-scale=1, user-scalable=no" name="viewport"> 8 <meta content="yes" name="full-screen"> 9 <meta content="index, follow" name="robots"> 10 <meta content="GameChannel.io" name="author"> 11 <meta content="GameChannel.io. All Rights Reserved." name="copyright"> 12 13 <link href="https://gamechannel.io/solitaire/index.html" rel="canonical"> 14 <meta content="Classic Solitaire â¡ Voted Best of 2024 Free card games. Millions of classic solitaire players online" name="description"> 15 <meta content="solitaire free, world of solitaire, free solitaire, klondike solitaire, solitaire free online, online solitaire, solitario, sol, klondike, solitaire time, classic card games, card games" name="keywords"> 16 17 <link href="./assets/icons/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"> 18 <link href="./assets/icons/favicon-32x32.png" rel="icon" type="image/png" sizes="32x32"> 19 <link href="./assets/icons/favicon-16x16.png" rel="icon" type="image/png" sizes="16x16"> 20 <link href="./assets/icons/favicon.ico" rel="shortcut icon"> 21 <link href="./assets/icons/safari-pinned-tab.svg" rel="mask-icon" color="#1b53c7"> 22 23 <link href="/common/adsTopSolitaireGames/adtop.css" rel="stylesheet" type="text/css"> 24 <link href="/common/applixirAds/applixirAds.css" rel="stylesheet" type="text/css"> 25 <link href="/common/social/fb-share-button.css" rel="stylesheet" type="text/css"> 26 <link href="/common/solitaireGames/solitaire.css" rel="stylesheet" type="text/css"> 27 28 <link href="card.css" rel="stylesheet" type="text/css"> 29 <link href="klondike.css" rel="stylesheet" type="text/css"> 30 31 <!-- Code: CMP for Adsense from Google to send TCF signals to GA4 --> 32
32<script> <!-- Enabled tcf support for Google tag --> window ['gtag_enable_tcf_support'] = true; </script>
32 33 34 <!-- Adsense Ads --> 35
35<script data-ad-client="ca-pub-8403075472397165" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
35 36 37 38 <!-- Google Ad Block Recovery --> 39
39<script async src="https://fundingchoicesmessages.google.com/i/pub-8403075472397165?ers=1" nonce="De881dIXGs7ppbcL5NcWOg"></script>
39<script nonce="De881dIXGs7ppbcL5NcWOg">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
39 40 41 <!-- Google Ad Block Optional Error protection message --> 42
42<script src="/common/googleAdBlockOptionalErrorProtectionMessage/googleAdBlockOptionalErrorProtectionMessage.js"></script>
42 43 44 <!-- Google Tag Manager --> 45
45<script>
vendor: 335 bytes, lines 45-49
45(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 46 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 47 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 48 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 49 })(window,document,'script','dataLayer','
49GTM-KZDJTBH
vendor: 5 bytes, lines 49-50
49'); 50
50</script>
50 51 <!-- End Google Tag Manager --> 52 53 <!-- Google Analytics tag (gtag.js) required to send data to GA4 and Google Ads -->
vendor: 65 bytes, lines 53-54
53 54 <script async src="https://www.googletagmanager.com/gtag/js?id=
54G-D8ZN7RQ3CQ
vendor: 13 bytes, lines 54-55
54"></script> 55
55<script> 56
vendor: 140 bytes, lines 56-59
56window.dataLayer = window.dataLayer || []; 57 function gtag(){dataLayer.push(arguments);} 58 gtag('js', new Date()); 59 gtag('config', '
59G-D8ZN7RQ3CQ
vendor: 10 bytes, lines 59-60
59'); 60
60gtag('config', 'AW-736771080'); 61 </script>
61 62 63
63<script src="v-util.js"></script>
63 <!-- This has the va_uuid attribution, so before GA --> 64 65 <!-- Open Graph metadata --> 66 <meta property="og:locale" content="en_US"> 67 <meta property="og:type" content="website"> 68 <meta property="og:title" content="Solitaire - 100% FREE | Voted BEST of 2024 - 2019"> 69 <meta property="og:description" content="â¡ï¸NEW! Fast and Easy - No download or registration required. Join millions of solitaire players worldwide!"> 70 <meta property="og:url" content="https://gamechannel.io/solitaire/index.html"> 71 <meta property="og:site_name" content="gamechannel.io"> 72 <meta property="og:image" content="https://gamechannel.io/solitaire/assets/icons/facebook-og/fb-og-image-1200x627-solitaire.png"> 73 <meta property="og:image:secure_url" content="https://gamechannel.io/solitaire/assets/icons/facebook-og/fb-og-image-1200x627-solitaire.png"> 74 <meta property="og:image:alt" content="gamechannel.io solitaire"> 75 <meta property="og:image:type" content="image/png"> 76 77 <!-- Twitter Card --> 78 <meta name="twitter:image" content="https://gamechannel.io/solitaire/assets/icons/twitter-card/thumbnail.png"> 79 <meta name="twitter:card" content="summary"> 80 <meta name="twitter:site" content="@GameChannel.io"> 81 <meta name="twitter:title" content="New! Solitaire - 100% FREE | Voted BEST of 2024 - 2019"> 82 <meta name="twitter:description" content="â¡ï¸NEW! Fast and Easy - No download or registration required. Join millions of solitaire players worldwide!"> 83 <meta name="twitter:url" content="https://gamechannel.io/solitaire/index.html"> 84 <meta name="twitter:creator" content="@GameChannel.io"> 85 86 <!-- Structured Data --> 87
87<script src="/common/structuredData/structuredDataSolitaire.js"></script>
87 88 89</head> 90<body> 91 92 <!-- Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 92-94
92 93 <noscript> 94 <iframe src="https://www.googletagmanager.com/ns.html?id=
94GTM-KZDJTBH
vendor: 93 bytes, lines 94-98
94" 95 height="0" width="0" style="display:none;visibility:hidden"> 96 </iframe> 97 </noscript> 98
98<!-- End Google Tag Manager (noscript) --> 99 100<div class="ad-game-container"> 101 102 <!-- Begin Ad Placements --> 103 <div id="ad-top-master"> 104 <div class="ad-top-left"> 105
105<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8403075472397165" 106 crossorigin="anonymous"></script>
106 107 <!-- fixed728x90 --> 108 <ins class="adsbygoogle" 109 style="display:inline-block;width:728px;height:90px" 110 data-ad-client="ca-pub-8403075472397165" 111 data-ad-slot="6382736985"></ins> 112
112<script> 113 (adsbygoogle = window.adsbygoogle || []).push({}); 114 </script>
114 115 </div> 116 117 <div class="ad-top-center"> 118
118<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8403075472397165" 119 crossorigin="anonymous"></script>
119 120 <!-- 2024_Top350 --> 121 <ins class="adsbygoogle" 122 style="display:block" 123 data-ad-client="ca-pub-8403075472397165" 124 data-ad-slot="5354065070" 125 data-ad-format="auto" 126 data-full-width-responsive="true"></ins> 127
127<script> 128 (adsbygoogle = window.adsbygoogle || []).push({}); 129 </script>
129 130 </div> 131 132 <div class="ad-top-right"> 133
133<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8403075472397165" 134 crossorigin="anonymous"></script>
134 135 <!-- 2024Top_Responsive --> 136 <ins class="adsbygoogle" 137 style="display:block" 138 data-ad-client="ca-pub-8403075472397165" 139 data-ad-slot="9349150406" 140 data-ad-format="auto" 141 data-full-width-responsive="true"></ins> 142
142<script> 143 (adsbygoogle = window.adsbygoogle || []).push({}); 144 </script>
144 145 </div> 146 </div> 147 <!-- End Ad Placements --> 148 149 <div id="control_bar" class="btn-group"> 150 <div> 151 <button class="btn" id="button_new" onclick="newGameSameMode()"> 152 <!--%s_new_game.html%--> 153 <svg focusable="false" class="ico" aria-hidden="true" viewBox="0 0 32 32"> 154 <circle cx="16" cy="16" r="13.5"/> 155 <path d="M13 9 20 16 13 23"/> 156 </svg> 157 <span class="lang" lang="en">New</span> 158 </button> 159 </div> 160 161 <div class="dropup" id="button_more"> 162 <button onclick="toggleDropUp()" class="dropbtn" id="more_games"> 163 <span id="dot" class="dot">+</span> 164 <span class="lang" lang="en">ð ???</span> 165 </button> 166 167 <div id="optionsDropup" class="dropup-content"> 168 169 <a class='menu_links' href='https://gamechannel.io/policies/privacy?utm_source=solitaire&utm_medium=in-game&utm_content=more' id='privacy_terms' rel='noopener' target='_blank'> 170 <!--privacy / terms--> 171 <span class="lang" lang="en"> (c) 2024 GameChannel.io | Privacy & Terms </span> </a> 172 173 <hr class="rounded"> 174 175 <a class='menu_links' href='https://gamechannel.io/2048/?utm_source=solitaire&utm_medium=in-game&utm_content=more' id='2048' rel='noopener' target='_blank'> 176 <!--2048--> 177 <span class="lang" lang="en"><img src="https://gamechannel.io/2048/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="2048"> 2048 CIRCLES</span> </a> 178 179 <a class='menu_links' href='https://gamechannel.io/backgammon/?utm_source=solitaire&utm_medium=in-game&utm_content=more' id='backgammon' rel='noopener' target='_blank'> 180 <!--Backgammon--> 181 <span class="lang" lang="en" ><img src="https://gamechannel.io/backgammon/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Backgammon"> BACKGAMMON</span></a> 182 183 <a class='menu_links' href='https://gamechannel.io/checkers/?utm_source=solitaire&utm_medium=in-game&utm_content=more' id='checkers' rel='noopener' target='_blank'> 184 <!--Checkers--> 185 <span class="lang" lang="en" ><img src="https://gamechannel.io/checkers/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Checkers"> CHECKERS</span> </a> 186 187 <a class='menu_links' href='https://gamechannel.io/chess/?utm_source=solitaire&utm_medium=in-game&utm_content=more' id='chess' rel='noopener' target='_blank'> 188 <!--Chess--> 189 <span class="lang" lang="en" ><img src="https://gamechannel.io/chess/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Chess"> CHESS</span> </a> 190 191 <a class='menu_links' href='https://gamechannel.io/reversi/?utm_source=solitaire&utm_medium=in-game&utm_content=more' id='reversi' rel='noopener' target='_blank'> 192 <!--Reversi--> 193 <span class="lang" lang="en" ><img src="https://gamechannel.io/reversi/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Reversi"> REVERSI | OTHELLO</span> </a> 194 195 <a class='menu_links' href='https://gamechannel.io/sudoku/?utm_source=solitaire&utm_medium=in-game&utm_content=more' id='sudoku' rel='noopener' target='_blank'> 196 <!--Sudoku--> 197 <span class="lang" lang="en" ><img src="https://gamechannel.io/sudoku/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Sudoku"> SUDOKU</span> </a> 198 199 <a class='menu_links' href='https://gamechannel.io/tank-wars/?utm_source=solitaire&utm_medium=in-game&utm_content=more' id='tank_wars' rel='noopener' target='_blank'> 200 <!--Tank Wars--> 201 <span class="lang" lang="en" ><img src="https://gamechannel.io/tank-wars/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Tank Wars"> TANK WARS Arcade</span> </a> 202 203 <hr class="rounded"> 204 205 <a class='menu_links' href='https://gamechannel.io/freecell-solitaire/' id='freecell' rel='noopener' target='_blank'> 206 <!--freecell--> 207 <span class="lang" lang="en" ><img src="https://gamechannel.io/freecell-solitaire/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="FreeCell Solitaire"> FREECELL Solitaire</span> </a> 208 209 <a class='menu_links' href='https://gamechannel.io/pyramid-solitaire/' id='pyramid' rel='noopener' target='_blank'>
210 <!--pyramid--> 211 <span class="lang" lang="en" ><img src="https://gamechannel.io/pyramid-solitaire/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Pyramid Solitaire"> PYRAMID Solitaire</span> </a> 212 213 <a class='menu_links' href='https://gamechannel.io/spider-solitaire/' id='spider' rel='noopener' target='_blank'> 214 <!--spider--> 215 <span class="lang" lang="en" ><img src="https://gamechannel.io/spider-solitaire/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Spider Solitaire"> SPIDER Solitaire</span> </a> 216 217 <a class='menu_links' href='https://gamechannel.io/tripeaks-solitaire/' id='tripeaks' rel='noopener' target='_blank'> 218 <!--tripeaks--> 219 <span class="lang" lang="en" ><img src="https://gamechannel.io/tripeaks-solitaire/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="TriPeaks Solitaire"> TRIPEAKS Solitaire</span> </a> 220 221 <hr class="rounded"> 222 223 <a onclick="newGameDraw1()" > 224 <!--%s_draw_1.html%--> 225 <span class="lang" lang="en">Solitaire: Draw 1</span> 226 </a> 227 228 <a onclick="newGameDraw3()"> 229 <!--%s_draw_3.html%--> 230 <span class="lang" lang="en">Solitaire: Draw 3</span> 231 </a> 232 233 <a onclick="showHelpDialog()"> 234 <!--%s_how_to_play.html%--> 235 <span class="lang" lang="en">Solitaire: How to Play</span> 236 </a> 237 238 </div> 239 </div> 240 241 <div> 242 <button class="btn" id="button_undo" onclick="undo()"> 243 <!--%s_undo.html%--> 244 <svg focusable="false" class="ico" aria-hidden="true" viewBox="0 0 34 32"> 245 <path d="M5.5 16A13.5 13.5 0 1 1 19 29.5M3 17 8 17 5.5 20z"/> 246 <text x="58%" y="65%" stroke-width="0.1em" id="undos_left">0</text> 247 </svg> 248 <span class="lang" lang="en">Undo</span> 249 </button> 250 </div> 251 252</div> <!-- close div ad-game-container --> 253 254 <!--control_bar--> 255 256 <!-- game div start --> 257 <div id="klondike_div"> 258 259 <!--%s_button_auto_move.html%--> 260 <div id="auto_move" > 261 <span class="lang" lang="en">Auto Complete</span> 262 </div> 263 264 <!--%s_button_help.html%--> 265 <div id="help_button" > 266 <span class="lang" lang="en">How to Play</span> 267 </div> 268 269 </div> 270 <!-- game div end --> 271 272 <!--%s_dialog_help.html%--> 273 <div id="help_div" scrollable="yes"> 274 <div lang="en" class="lang" > 275 <div class="header"><span>Solitaire: How to Play</span> 276 </div> 277 <ul> 278 <li>Klondike solitaire is played with a 52 card deck. </li> 279 <li>The objective of the game is to move all cards to the top foundation piles.</li> 280 <li>These piles are built upward in card suit from Ace to King.</li> 281 <li>There are 7 tableau columns that are built in decreasing rank, from King to Ace in alternating colors (black / red).</li> 282 <li>Empty columns can only be filled with a King or a stack of cards with a King at the top.</li> 283 <li>Partial and complete stacks can be moved across columns if they are built in sequence and alternating color.</li> 284 <li>Face down cards should be turned face up in the tableau.</li> 285 <li>Move a card / stack of cards by tapping or dragging it.</li> 286 <li>Tap the deck of cards (stock) to turn over 1 or 3 cards to the waste pile.</li> 287 <li>The top card in the waste may be played.</li> 288 <li>When the stock is empty, tap the empty stock to return waste cards to the stock and deal again.</li> 289 </ul> 290 </div> 291 </div> 292 293 <!-- help div--> 294 295 <div id="game_over_div" class="solitaire_dialog"> 296 <div id="trophy_win"> 297 <span>ð</span> 298 <span>ð</span> 299 <span>ð</span> 300 <span>ð</span> 301 <span>ð</span> 302 </div> 303 <!--%s_label_great_game.html%--> 304 <div id="congrats-1"> 305 <strong> 306 <span class="lang" lang="en">Great Game!</span> 307 </strong> 308 </div> 309 <!--%s_label_you_win.html%--> 310 <div id="you-win"><strong> 311 <span class="lang" lang="en">YOU WIN!</span> 312 </strong> 313 </div> 314 <br> 315 316 <div id="game_over_stats"> 317 <!--%s_label_your_time.html%--> 318 <span class="lang" lang="en">Your Time: </span> 319 <span id="game_over_time"></span> 320 <br /> 321 <BR> 322 <!--%s_label_moves_to_win.html%--> 323 <span class="lang" lang="en">Moves to Win:</span> 324 <span id="game_over_moves"></span> 325 <br /> 326 </div> 327 328 <br /> 329 330 <div class="continue_div"> 331 <strong> 332 <span id="continue" onclick="newGameSameMode()"> 333 <!--%s_button_continue_plain.html%--> 334 <span class="lang" lang="en">CONTINUE â·</span> 335 </span> 336 </strong> 337 </div> 338 <br /> 339 </div> 340 <!--game over div--> 341 342 <!-- ad game container --> 343 344 <div id="applixir_vanishing_div" hidden > 345 <iframe id="applixir_parent" allow="autoplay"></iframe> 346 </div> 347 348 <div id="ad-center" align="center" class="flex-container"> 349 <header id="ad-header"><span id="ad-close" style="cursor:pointer">Loading...</span></header> 350 </div> 351 352 <!-- FB Share Button --> 353 <div id="fb-share-button" class="fb-share-button" data-href="https://gamechannel.io/solitaire/index.html" data-layout="button" data-size=""><a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fgamechannel.io%2Fsolitaire&
353src=sdkpreparse" class="fb-xfbml-parse-ignore">Share</a> 354 </div> 355 356 <!-- Load Facebook SDK for JavaScript --> 357 <div id="fb-root"></div> 358 359 <!-- Link to external JavaScript file --> 360
360<script src="/common/social/social-scripts.js"></script>
360 361 362</body> 363 364
364<script src="k.js"></script>
364 365 366 <!-- APPLIXIR NEW for gen UUID4 and passed to applixir --> 367
367<script src="https://cdnjs.cloudflare.com/ajax/libs/uuid/8.3.2/uuid.min.js"> 368 </script>
368 369 370
370<script defer> 371 // Generate a random UUID using the uuid library 372 let myuuid = uuid.v4(); 373 374 // Log the UUID to the console 375 console.log(myuuid); 376 377 // Assign the UUID to APPLIXIR_USERID 378 var APPLIXIR_USERID = myuuid; 379 380 // Check sessionTime and reload window if greater than 2 minutes 381 if (_sessionTime > 2 * 60) { 382 window.location.reload(true); 383 } 384 </script>
384 385 386
386<script type="text/javascript"> 387 // This function is called after the page is fully loaded. 388 // Unlike normal webpage, care MOST about game loading fully and playable 389 // for speed to first contentful paint/playable. Also, SECOND most important thing is to get manifest.json 390 // file downloaded and processed for deferred prompt. Unforunately, while can preload file, browsers will not process manifest.json until after page fully loads. So, we put the ads/marketing to <defer> load and we also don't want to load the network with too many requests for javascript files/etc for lower end devices in various parts of the world. 391 // Now, you are probably going to ignore this and start putting in
391<script> includes above and do things like async/defer. I am just telling you, we are not a normal web page, and the solution below is the best so far for the goals above, so don't ignore the efforts of your elders. 392 function downloadJSAtOnLoad() { 393 394 var deferInclude = document.createElement("script"); 395 deferInclude.src = "/common/defer/defer.js"; 396 deferInclude.defer = true; 397 deferInclude.async = true; 398 document.body.appendChild(deferInclude); 399 400 // If we are being told to show interstitial, let's do it in a tick after all the ad tech loads. 401 if (urlParams.has("si")) { 402 setTimeout(function() { 403 if (typeof showVideoInterstitial != "function") { return; } // Defer load check 404 showVideoInterstitial(); 405 _interstitialTime = Date.now(); 406 }, 500); 407 } 408 } 409 410 // Simple function to call downloadJS files post load to let everything settle. 411 function deferLoad() { 412 setTimeout(downloadJSAtOnLoad, 1.5*1000); 413 } 414 415 // Hook into the page fully loading to call defer 416 if (window.addEventListener) { window.addEventListener("load", deferLoad, false); } 417 else if (window.attachEvent) { window.attachEvent("onload", deferLoad); } 418 else { window.onload = deferLoad;} 419 </script>
419 420 421
421<script> 422 // Grab the game config; 423 initGameConfig("klondike"); 424 425 // Start the game as soon as possible to render to the screen. 426 startGame(vGameConfig); 427 428 var _interstitialTime = 0; 429 430 // Add a call back when a new game starts to show an ad for showing the install dialog 431 addNewGameCallback(function() { 432 433 // If we haven't shown an ad in 60 seconds let's show one 434 if ( Date.now() - _interstitialTime > 60*1000) { 435 if (typeof showVideoInterstitial != "function") { 436 console.log("Show Video Interstitial not defined yet"); 437 return; 438 } 439 showVideoInterstitial(); 440 441 _interstitialTime = Date.now(); 442 //reloadForInterstitial(); 443 } 444 445 }); 446 447 </script>
447 448</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.