Advertisement
BrU32

JS DGAF

Oct 16th, 2016
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.59 KB | None | 0 0
  1.  
  2. <!DOCTYPE html>
  3. <html class="no-js consumer" lang="en">
  4. <head>
  5.  
  6. <script>
  7. (function(e, p){
  8. var m = location.href.match(/platform=(win8|win|mac|linux|cros)/);
  9. e.id = (m && m[1]) ||
  10. (p.indexOf('Windows NT 6.2') > -1 ? 'win8' : p.indexOf('Windows') > -1 ? 'win' : p.indexOf('Mac') > -1 ? 'mac' : p.indexOf('CrOS') > -1 ? 'cros' : 'linux');
  11. e.className = e.className.replace(/\bno-js\b/,'js');
  12. })(document.documentElement, window.navigator.userAgent)
  13. </script>
  14. <meta charset="utf-8">
  15. <meta content="initial-scale=1, minimum-scale=1, width=device-width" name="viewport">
  16. <meta content=
  17. "Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier."
  18. name="description">
  19. <title>
  20. Chrome Browser
  21. </title>
  22. <link href="https://plus.google.com/100585555255542998765" rel="publisher">
  23. <link href="//www.google.com/images/icons/product/chrome-32.png" rel="icon" type="image/ico">
  24. <link href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;subset=latin" rel=
  25. "stylesheet">
  26. <link href="/intl/en/chrome/assets/common/css/chrome.min.css" rel="stylesheet">
  27. <script src="//www.google.com/js/gweb/analytics/autotrack.js">
  28. </script>
  29. <script>
  30. new gweb.analytics.AutoTrack({
  31. profile: 'UA-26908291-1'
  32. });
  33. </script>
  34. <style>
  35. #info {
  36. font-size: 20px;
  37. }
  38. #div_start {
  39. float: right;
  40. }
  41. #headline {
  42. text-decoration: none
  43. }
  44. #results {
  45. font-size: 14px;
  46. font-weight: bold;
  47. border: 1px solid #ddd;
  48. padding: 15px;
  49. text-align: left;
  50. min-height: 150px;
  51. }
  52. #start_button {
  53. border: 0;
  54. background-color:transparent;
  55. padding: 0;
  56. }
  57. .interim {
  58. color: gray;
  59. }
  60. .final {
  61. color: black;
  62. padding-right: 3px;
  63. }
  64. .button {
  65. display: none;
  66. }
  67. .marquee {
  68. margin: 20px auto;
  69. }
  70.  
  71. #buttons {
  72. margin: 10px 0;
  73. position: relative;
  74. top: -50px;
  75. }
  76.  
  77. #copy {
  78. margin-top: 20px;
  79. }
  80.  
  81. #copy > div {
  82. display: none;
  83. margin: 0 70px;
  84. }
  85. </style>
  86. <style>
  87. a.c1 {font-weight: normal;}
  88. </style>
  89. </head>
  90. <body class="" id="grid">
  91. <div class="browser-landing" id="main">
  92. <div class="compact marquee-stacked" id="marquee">
  93. <div class="marquee-copy">
  94. <h1>
  95. <a class="c1" href="http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html">Web
  96. Speech API</a> Demonstration
  97. </h1>
  98. </div>
  99. </div>
  100. <div class="compact marquee">
  101. <div id="info">
  102. <p id="info_start">
  103. Click on the microphone icon and begin speaking for as long as you like.
  104. </p>
  105. <p id="info_speak_now" style="display:none">
  106. Speak now.
  107. </p>
  108. <p id="info_no_speech" style="display:none">
  109. No speech was detected. You may need to adjust your <a href=
  110. "//support.google.com/chrome/bin/answer.py?hl=en&amp;answer=1407892">microphone
  111. settings</a>.
  112. </p>
  113. <p id="info_no_microphone" style="display:none">
  114. No microphone was found. Ensure that a microphone is installed and that
  115. <a href="//support.google.com/chrome/bin/answer.py?hl=en&amp;answer=1407892">
  116. microphone settings</a> are configured correctly.
  117. </p>
  118. <p id="info_allow" style="display:none">
  119. Click the "Allow" button above to enable your microphone.
  120. </p>
  121. <p id="info_denied" style="display:none">
  122. Permission to use microphone was denied.
  123. </p>
  124. <p id="info_blocked" style="display:none">
  125. Permission to use microphone is blocked. To change, go to
  126. chrome://settings/contentExceptions#media-stream
  127. </p>
  128. <p id="info_upgrade" style="display:none">
  129. Web Speech API is not supported by this browser. Upgrade to <a href=
  130. "//www.google.com/chrome">Chrome</a> version 25 or later.
  131. </p>
  132. </div>
  133. <div id="div_start">
  134. <button id="start_button" onclick="startButton(event)"><img alt="Start" id="start_img"
  135. src="/intl/en/chrome/assets/common/images/content/mic.gif"></button>
  136. </div>
  137. <div id="results">
  138. <span class="final" id="final_span"></span> <span class="interim" id=
  139. "interim_span"></span>
  140. </div>
  141. <div id="copy">
  142. <button class="button" id="copy_button" onclick="copyButton()">Copy and Paste</button>
  143. <div id="copy_info">
  144. <p>
  145. Press Control-C to copy text.
  146. </p>
  147. <p>
  148. (Command-C on Mac.)
  149. </p>
  150. </div><button class="button" id="email_button" onclick="emailButton()">Create
  151. Email</button>
  152. <div id="email_info">
  153. <p>
  154. Text sent to default email application.
  155. </p>
  156. <p>
  157. (See chrome://settings/handlers to change.)
  158. </p>
  159. </div>
  160. </div>
  161. <div class="compact marquee" id="div_language">
  162. <select id="select_language" onchange="updateCountry()">
  163. </select>&nbsp;&nbsp; <select id="select_dialect">
  164. </select>
  165. </div>
  166. </div>
  167. </div><script src="/intl/en/chrome/assets/common/js/chrome.min.js">
  168. </script> <script>
  169. var chrmMenuBar = new chrm.ui.MenuBar();
  170. chrmMenuBar.decorate('nav');
  171. var chrmLogo = new chrm.ui.Logo('logo');
  172.  
  173. var chrmscroll = new chrm.ui.SmoothScroll('scroll');
  174. chrmscroll.init();
  175.  
  176.  
  177.  
  178. window.___gcfg = { lang: 'en' };
  179. (function() {
  180. var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
  181. po.src = 'https://apis.google.com/js/plusone.js';
  182. var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  183. })();
  184.  
  185.  
  186.  
  187.  
  188. var doubleTracker = new gweb.analytics.DoubleTrack('floodlight', {
  189. src: 2542116,
  190. type: 'clien612',
  191. cat: 'chrom0'
  192. });
  193. doubleTracker.track();
  194.  
  195. doubleTracker.trackClass('doubletrack', true);
  196. </script> <script>
  197. var langs =
  198. [['Afrikaans', ['af-ZA']],
  199. ['Bahasa Indonesia',['id-ID']],
  200. ['Bahasa Melayu', ['ms-MY']],
  201. ['Català', ['ca-ES']],
  202. ['Čeština', ['cs-CZ']],
  203. ['Dansk', ['da-DK']],
  204. ['Deutsch', ['de-DE']],
  205. ['English', ['en-AU', 'Australia'],
  206. ['en-CA', 'Canada'],
  207. ['en-IN', 'India'],
  208. ['en-NZ', 'New Zealand'],
  209. ['en-ZA', 'South Africa'],
  210. ['en-GB', 'United Kingdom'],
  211. ['en-US', 'United States']],
  212. ['Español', ['es-AR', 'Argentina'],
  213. ['es-BO', 'Bolivia'],
  214. ['es-CL', 'Chile'],
  215. ['es-CO', 'Colombia'],
  216. ['es-CR', 'Costa Rica'],
  217. ['es-EC', 'Ecuador'],
  218. ['es-SV', 'El Salvador'],
  219. ['es-ES', 'España'],
  220. ['es-US', 'Estados Unidos'],
  221. ['es-GT', 'Guatemala'],
  222. ['es-HN', 'Honduras'],
  223. ['es-MX', 'México'],
  224. ['es-NI', 'Nicaragua'],
  225. ['es-PA', 'Panamá'],
  226. ['es-PY', 'Paraguay'],
  227. ['es-PE', 'Perú'],
  228. ['es-PR', 'Puerto Rico'],
  229. ['es-DO', 'República Dominicana'],
  230. ['es-UY', 'Uruguay'],
  231. ['es-VE', 'Venezuela']],
  232. ['Euskara', ['eu-ES']],
  233. ['Filipino', ['fil-PH']],
  234. ['Français', ['fr-FR']],
  235. ['Galego', ['gl-ES']],
  236. ['Hrvatski', ['hr_HR']],
  237. ['IsiZulu', ['zu-ZA']],
  238. ['Íslenska', ['is-IS']],
  239. ['Italiano', ['it-IT', 'Italia'],
  240. ['it-CH', 'Svizzera']],
  241. ['Lietuvių', ['lt-LT']],
  242. ['Magyar', ['hu-HU']],
  243. ['Nederlands', ['nl-NL']],
  244. ['Norsk bokmål', ['nb-NO']],
  245. ['Polski', ['pl-PL']],
  246. ['Português', ['pt-BR', 'Brasil'],
  247. ['pt-PT', 'Portugal']],
  248. ['Română', ['ro-RO']],
  249. ['Slovenščina', ['sl-SI']],
  250. ['Slovenčina', ['sk-SK']],
  251. ['Suomi', ['fi-FI']],
  252. ['Svenska', ['sv-SE']],
  253. ['Tiếng Việt', ['vi-VN']],
  254. ['Türkçe', ['tr-TR']],
  255. ['Ελληνικά', ['el-GR']],
  256. ['български', ['bg-BG']],
  257. ['Pусский', ['ru-RU']],
  258. ['Српски', ['sr-RS']],
  259. ['Українська', ['uk-UA']],
  260. ['한국어', ['ko-KR']],
  261. ['中文', ['cmn-Hans-CN', '普通话 (中国大陆)'],
  262. ['cmn-Hans-HK', '普通话 (香港)'],
  263. ['cmn-Hant-TW', '中文 (台灣)'],
  264. ['yue-Hant-HK', '粵語 (香港)']],
  265. ['日本語', ['ja-JP']],
  266. ['हिन्दी', ['hi-IN']],
  267. ['ภาษาไทย', ['th-TH']]];
  268.  
  269. for (var i = 0; i < langs.length; i++) {
  270. select_language.options[i] = new Option(langs[i][0], i);
  271. }
  272. select_language.selectedIndex = 7;
  273. updateCountry();
  274. select_dialect.selectedIndex = 6;
  275. showInfo('info_start');
  276.  
  277. function updateCountry() {
  278. for (var i = select_dialect.options.length - 1; i >= 0; i--) {
  279. select_dialect.remove(i);
  280. }
  281. var list = langs[select_language.selectedIndex];
  282. for (var i = 1; i < list.length; i++) {
  283. select_dialect.options.add(new Option(list[i][1], list[i][0]));
  284. }
  285. select_dialect.style.visibility = list[1].length == 1 ? 'hidden' : 'visible';
  286. }
  287.  
  288. var create_email = false;
  289. var final_transcript = '';
  290. var recognizing = false;
  291. var ignore_onend;
  292. var start_timestamp;
  293. if (!('webkitSpeechRecognition' in window)) {
  294. upgrade();
  295. } else {
  296. start_button.style.display = 'inline-block';
  297. var recognition = new webkitSpeechRecognition();
  298. recognition.continuous = true;
  299. recognition.interimResults = true;
  300.  
  301. recognition.onstart = function() {
  302. recognizing = true;
  303. showInfo('info_speak_now');
  304. start_img.src = '/intl/en/chrome/assets/common/images/content/mic-animate.gif';
  305. };
  306.  
  307. recognition.onerror = function(event) {
  308. if (event.error == 'no-speech') {
  309. start_img.src = '/intl/en/chrome/assets/common/images/content/mic.gif';
  310. showInfo('info_no_speech');
  311. ignore_onend = true;
  312. }
  313. if (event.error == 'audio-capture') {
  314. start_img.src = '/intl/en/chrome/assets/common/images/content/mic.gif';
  315. showInfo('info_no_microphone');
  316. ignore_onend = true;
  317. }
  318. if (event.error == 'not-allowed') {
  319. if (event.timeStamp - start_timestamp < 100) {
  320. showInfo('info_blocked');
  321. } else {
  322. showInfo('info_denied');
  323. }
  324. ignore_onend = true;
  325. }
  326. };
  327.  
  328. recognition.onend = function() {
  329. recognizing = false;
  330. if (ignore_onend) {
  331. return;
  332. }
  333. start_img.src = '/intl/en/chrome/assets/common/images/content/mic.gif';
  334. if (!final_transcript) {
  335. showInfo('info_start');
  336. return;
  337. }
  338. showInfo('');
  339. if (window.getSelection) {
  340. window.getSelection().removeAllRanges();
  341. var range = document.createRange();
  342. range.selectNode(document.getElementById('final_span'));
  343. window.getSelection().addRange(range);
  344. }
  345. if (create_email) {
  346. create_email = false;
  347. createEmail();
  348. }
  349. };
  350.  
  351. recognition.onresult = function(event) {
  352. var interim_transcript = '';
  353. if (typeof(event.results) == 'undefined') {
  354. recognition.onend = null;
  355. recognition.stop();
  356. upgrade();
  357. return;
  358. }
  359. for (var i = event.resultIndex; i < event.results.length; ++i) {
  360. if (event.results[i].isFinal) {
  361. final_transcript += event.results[i][0].transcript;
  362. } else {
  363. interim_transcript += event.results[i][0].transcript;
  364. }
  365. }
  366. final_transcript = capitalize(final_transcript);
  367. final_span.innerHTML = linebreak(final_transcript);
  368. interim_span.innerHTML = linebreak(interim_transcript);
  369. if (final_transcript || interim_transcript) {
  370. showButtons('inline-block');
  371. }
  372. };
  373. }
  374.  
  375. function upgrade() {
  376. start_button.style.visibility = 'hidden';
  377. showInfo('info_upgrade');
  378. }
  379.  
  380. var two_line = /\n\n/g;
  381. var one_line = /\n/g;
  382. function linebreak(s) {
  383. return s.replace(two_line, '<p></p>').replace(one_line, '<br>');
  384. }
  385.  
  386. var first_char = /\S/;
  387. function capitalize(s) {
  388. return s.replace(first_char, function(m) { return m.toUpperCase(); });
  389. }
  390.  
  391. function createEmail() {
  392. var n = final_transcript.indexOf('\n');
  393. if (n < 0 || n >= 80) {
  394. n = 40 + final_transcript.substring(40).indexOf(' ');
  395. }
  396. var subject = encodeURI(final_transcript.substring(0, n));
  397. var body = encodeURI(final_transcript.substring(n + 1));
  398. window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
  399. }
  400.  
  401. function copyButton() {
  402. if (recognizing) {
  403. recognizing = false;
  404. recognition.stop();
  405. }
  406. copy_button.style.display = 'none';
  407. copy_info.style.display = 'inline-block';
  408. showInfo('');
  409. }
  410.  
  411. function emailButton() {
  412. if (recognizing) {
  413. create_email = true;
  414. recognizing = false;
  415. recognition.stop();
  416. } else {
  417. createEmail();
  418. }
  419. email_button.style.display = 'none';
  420. email_info.style.display = 'inline-block';
  421. showInfo('');
  422. }
  423.  
  424. function startButton(event) {
  425. if (recognizing) {
  426. recognition.stop();
  427. return;
  428. }
  429. final_transcript = '';
  430. recognition.lang = select_dialect.value;
  431. recognition.start();
  432. ignore_onend = false;
  433. final_span.innerHTML = '';
  434. interim_span.innerHTML = '';
  435. start_img.src = '/intl/en/chrome/assets/common/images/content/mic-slash.gif';
  436. showInfo('info_allow');
  437. showButtons('none');
  438. start_timestamp = event.timeStamp;
  439. }
  440.  
  441. function showInfo(s) {
  442. if (s) {
  443. for (var child = info.firstChild; child; child = child.nextSibling) {
  444. if (child.style) {
  445. child.style.display = child.id == s ? 'inline' : 'none';
  446. }
  447. }
  448. info.style.visibility = 'visible';
  449. } else {
  450. info.style.visibility = 'hidd';
  451. }
  452. }
  453.  
  454. var current_style;
  455. function showButtons(style) {
  456. if (style == current_style) {
  457. return;
  458. }
  459. current_style = style;
  460. copy_button.style.display = style;
  461. email_button.style.display = style;
  462. copy_info.style.display = 'none';
  463. email_info.style.display = 'none';
  464. }
  465. </script>
  466. </body>
  467. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement