1<!DOCTYPE html> 2<html> 3 4<head> 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1"> 8 <title>How to Use - RemoteJS</title> 9 <meta name="description" content="Connect to remote browser sessions and debug your JavaScript applications."> 10 <link rel="canonical" href="https://remotejs.com/"> 11 <link rel="me" href="https://twitter.com/trackjs"> 12 13 <!-- Open Graph Sharing Info --> 14 <meta property="og:title" content="How to Use" /> 15 <meta property="og:site_name" content="RemoteJS" /> 16 <meta property="og:url" content="https://remotejs.com/" /> 17 <meta property="og:description" 18 content="Connect to remote browser sessions and debug your JavaScript applications." /> 19 <meta property="og:type" content="article" /> 20 <meta property="og:locale" content="en_US" /> 21 <meta property="article:author" content="https://www.facebook.com/trackjs" /> 22 <meta property="article:publisher" content="https://www.facebook.com/trackjs" /> 23 <meta property="og:image" content="https://remotejs.com/assets/images/share.png" /> 24 25 <!-- Twitter Cards --> 26 <meta name="twitter:card" content="summary_large_image"> 27 <meta name="twitter:title" content="How to Use - RemoteJS"> 28 <meta name="twitter:description" 29 content="Connect to remote browser sessions and debug your JavaScript applications."> 30 <meta name="twitter:site" content="@TrackJS"> 31 <meta name="twitter:image" content="https://remotejs.com/assets/images/share.png" /> 32 33 <!-- Favicons --> 34 <link rel="apple-touch-icon" sizes="57x57" href="/assets/images/favicon/apple-icon-57x57.png"> 35 <link rel="apple-touch-icon" sizes="60x60" href="/assets/images/favicon/apple-icon-60x60.png"> 36 <link rel="apple-touch-icon" sizes="72x72" href="/assets/images/favicon/apple-icon-72x72.png"> 37 <link rel="apple-touch-icon" sizes="76x76" href="/assets/images/favicon/apple-icon-76x76.png"> 38 <link rel="apple-touch-icon" sizes="114x114" href="/assets/images/favicon/apple-icon-114x114.png"> 39 <link rel="apple-touch-icon" sizes="120x120" href="/assets/images/favicon/apple-icon-120x120.png"> 40 <link rel="apple-touch-icon" sizes="144x144" href="/assets/images/favicon/apple-icon-144x144.png"> 41 <link rel="apple-touch-icon" sizes="152x152" href="/assets/images/favicon/apple-icon-152x152.png"> 42 <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/favicon/apple-icon-180x180.png"> 43 <link rel="icon" type="image/png" sizes="192x192" href="/assets/images/favicon/android-icon-192x192.png"> 44 <link rel="icon" type="image/png" sizes="32x32" href="/assets/images/favicon/favicon-32x32.png"> 45 <link rel="icon" type="image/png" sizes="96x96" href="/assets/images/favicon/favicon-96x96.png"> 46 <link rel="icon" type="image/png" sizes="16x16" href="/assets/images/favicon/favicon-16x16.png"> 47 <link rel="manifest" href="/manifest.json"> 48 <meta name="msapplication-TileColor" content="#ffffff"> 49 <meta name="msapplication-TileImage" content="/assets/images/favicon/ms-icon-144x144.png"> 50 <meta name="theme-color" content="#ffffff"> 51 52 <!-- JSON-LD --> 53
53<script type="application/ld+json"> 54 { 55 "@context": "http://schema.org", 56 "@type": "WebSite", 57 "name": "Remote JavaScript Debugger - RemoteJS", 58 "url": "https://remotejs.com/", 59 "description": "Connect to remote browser sessions and debug your JavaScript applications.", 60 "author": { 61 "@type": "Organization", 62 "name": "TrackJS", 63 "url": "https://trackjs.com/" 64 }, 65 "sameAs": [ 66 ] 67 } 68 </script>
68 69 70 <!-- TrackJS --> 71
71<script src="https://cdn.trackjs.com/agent/v3/canary/t.js"></script>
71 72
72<script> 73 window.TrackJS && TrackJS.install({ 74 application: "remotejs", 75 callback: { bindStack: true }, 76 enabled: (window.location.host.indexOf('local') < 0), 77 token: '8de4c78a3ec64020ab2ad15dea1ae9ff' 78 }); 79 </script>
79 80 81 <!-- Request Metrics --> 82
82<script async src="https://cdn.requestmetrics.com/agent/current/rm.js" data-rm-token="i4xb6bv:a8vh7rk"></script>
82 83 84 <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" 85 integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous"> 86 <link href="https://fonts.googleapis.com/css?family=Roboto:300,500,700|Ubuntu:300,500,700" rel="stylesheet"> 87 <link href="/assets/css/main.css" rel="stylesheet"> 88</head> 89 90<body> 91 <div class="section-header short"> 92 <header class="container"> 93 <nav> 94 <div class="logo"><a href="/"><img src="assets/images/logo_full_white_red.svg" alt="RemoteJS"></a></div> 95 <div><a class="selected" href="/how.html">How to Use</a></div> 96 </nav> 97 <div class="about"><a href="https://trackjs.com/">A Free Service from <img 98 src="assets/images/tjs_full_white_red.svg" alt="TrackJS"></a></div> 99 </header> 100 </div> 101 102 <div class="section-page-title"> 103 <div class="container"> 104 <div class="title"> 105 <h1>How to Use RemoteJS</h1> 106 <h2>And When It Can Help You</h2> 107 <p>Debugging the web is difficult. We're here to help.</p> 108 </div> 109 </div> 110 </div> 111 112 <div class="section-faq"> 113 <div class="container"> 114 <div class="question"> 115 <h2>Why Do I Need This?</h2> 116 <p>RemoteJS is for debugging problems on remote web clients, such as mobile phones, kiosk computers, or 117 embedded systems, where you cannot recreate the bug locally. By giving you an interactive session to 118 the remote device, RemoteJS allows you to gather more information and better understand the problem. 119 </p> 120 </div> 121 </div> 122 <div class="container"> 123 <div class="question"> 124 <h2>How Do I Run the Agent Remotely?</h2> 125 <p>When you start a new debugging session, RemoteJS will give you a snippet of JavaScript to be run. It 126 can be executed by pasting it into the remote console, or running it as a bookmarket on the remote 127 device. You can also deploy it with your code.</p> 128 </div> 129 </div> 130 <div class="container"> 131 <div class="question"> 132 <h2>Can I Reconnect to Debugging Sessions?</h2> 133 <p>Yes! A debugging session is just a string. When you create a new debugging session, we generate a 134 UUID in the URL, but this can be anything. If you bookmark the page, you can return later, or name a 135 debugging session for your needs.</p> 136 </div> 137 </div> 138 <div class="container"> 139 <div class="question"> 140 <h2>How Can I Enable and Disable the Agent in my Code?</h2> 141 <p>If you deploy the debugging snippet into your application, you may want to choose when to enable when 142 your clients send debugging information. You can do this by wrapping the agent in check if 143 <code>?remote-debug</code> is in the URL query. 144 </p> 145 <pre> 146if (window.location.search.indexOf("remote-debug") >= 0) { 147 (function(){var s=document.createElement("script");s.src="https://remotejs.com/agent/agent.js"; 148 s.setAttribute("data-consolejs-channel","YOUR_CHANNEL");document.head.appendChild(s);})() 149}</pre> 150 </div> 151 </div> 152 <div class="container"> 153 <div class="question"> 154 <h2>Can I Monitor All My Users?</h2> 155 <p>Yes! But RemoteJS is not the best tool for that, as debugging data isn't saved for later analysis. 156 Instead, <a href="https://trackjs.com/?utm-source=remotejs">check out TrackJS.</a> It provides all 157 the same monitoring, along with alerting and diagnostics.</p> 158 </div> 159 </div> 160 <div class="container"> 161 <div class="question"> 162 <h2>Is This Secure?</h2> 163 <p> 164 No, not really. The debugging channel Id is discoverable in your markup and can be used to view 165 sessions. An attacker 166 could get access to your end user sessions. You should refrain from using RemoteJS for long-term 167 debugging and on 168 sites with sensitive data. 169 </p> 170 </div> 171 </div> 172 </div> 173 174 <div class="section-cta"> 175 <div class="container"> 176 <h2>Let's Fix Some Bugs!</h2> 177 <div class="try-buttons"> 178 <a class="start-btn button create-channel" href="javascript:void(0);">Start Debugging</a> 179 <a class="how-btn button" href="/how.html">Tell me More</a> 180 </div> 181 </div> 182 </div> 183 184 <div class="section-footer"> 185 <footer class="container"> 186 <div class="footer-col-wrapper"> 187 <div class="footer-col footer-col-1"> 188 <h2 class="footer-logo"> 189 <a href="https://trackjs.com/?utm_source=remotejs"> 190 <img src="/assets/images/tjs_full_white_red.svg" alt="TrackJS" /> 191 </a> 192 </h2> 193 <p class="footer-desc"> 194 JavaScript Error Monitoring from TrackJS monitors your web applications 195 for JavaScript errors, alerting you with amazing context about how 196 the user, application, and network got into trouble. Find and fix 197 your bugs fast with TrackJS. 198 </p> 199 200 <ul class="social-media-list"> 201 <li> 202 <a href="https://github.com/TrackJs" class="icon-13 github" title="GitHub" target="_blank" 203 data-click-event="social_check" data-click-label="github"><i 204 class="fab fa-github"></i></a> 205 </li> 206 </ul> 207 </div> 208 209 <div class="footer-col footer-col-2"> 210 <h3>Company</h3> 211 <ul> 212 <li><a href="https://trackjs.com/about/?utm_source=remotejs">About</a></li> 213 <li><a href="https://trackjs.com/blog/?utm_source=remotejs">Blog</a></li> 214 </ul> 215 </div> 216 217 <div class="footer-col footer-col-3"> 218 <h3>Products</h3> 219 <ul> 220 <li><a href="https://trackjs.com/?utm_source=remotejs">JavaScript Error Monitoring</a></li> 221 <li><a href="https://requestmetrics.com/?utm_source=remotejs">Performance Monitoring</a></li> 222 </ul> 223 </div> 224 225 </div> 226 </footer> 227 </div> 228 229 <div class="section-legal"> 230 <div class="wrapper container"> 231 <div class="legal"> 232 <p><small>All content appearing on this website is proprietary, copyrighted and owned or licensed by 233 TrackJS LLC. Any unauthorized use of trademarks or content from this website is strictly 234 prohibited. All rights reserved.</small></p> 235 <p><small>© 2013-2025 TrackJS LLC</small></p> 236 </div> 237 </div> 238 </div> 239 240
240<script> 241 function guid() { 242 function s4() { 243 return Math.floor((1 + Math.random()) * 0x10000) 244 .toString(16) 245 .substring(1); 246 } 247 return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); 248 } 249 250 window.addEventListener("click", function (evt) { 251 if (evt.target && evt.target.classList && event.target.classList.contains("create-channel")) { 252 window.location = "/viewer/" + guid(); 253 } 254 }) 255 </script>
255 256
256<script src="/assets/js/main.js"></script>
256 257</body> 258 259</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.