2015-04-03 2 views
1

Я нашел этот javascript, который позволяет вам выбрать вариант и как только вы нажмете кнопку go. Он перенаправит вас на другой сайт. Я попробую изменить это, поэтому я могу использовать его с помощью кнопки вместо радио, но это, похоже, не работает. Может ли кто-нибудь помочь мне?Изменение Cookies JavaScript redirection

Большое спасибо.

здесь код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 
"http://www.w3.org/TR/html4/loose.dtd"> 
 

 
<html> 
 

 
<head> 
 
    <title></title> 
 
    <script language="JavaScript" type="text/javascript"> 
 
    //chose which page to go to 
 
    function Link() { 
 
     if (document.fred.r1[0].checked) { 
 
     window.top.location = 'http://kshowonline.com/list'; 
 
     } 
 
     if (document.fred.r1[1].checked) { 
 
     window.top.location = 'https://www.google.com/'; 
 
     } 
 
     if (document.fred.r1[2].checked) { 
 
     window.top.location = 'https://www.yahoo.com/'; 
 
     } 
 
     if (document.fred.r1[3].checked) { 
 
     window.top.location = 'https://nodejs.org/'; 
 
     } 
 
    } 
 

 
    //--> 
 
    </script> 
 
</head> 
 

 
<body onload="f19_GetFormCookie();Link();"> 
 
    <form title="f19_Include" name="fred"> 
 
    <INPUT type="radio" name="r1">Baseball 
 
    <INPUT type="radio" name="r1">Basketball 
 
    <INPUT type="radio" name="r1">Soccer 
 
    <INPUT type="radio" name="r1">Fencing 
 
    <INPUT type="button" value="GO" onclick="f19_SetFormCookie();Link();"> 
 
    </form> 
 

 
    <script language="JavaScript" type="text/javascript"> 
 
    <!-- 
 

 

 
    // A Cookie Script to Store and Retrieve 
 
    // the values and states of common form elements 
 
    // TEXT BOXES - value 
 
    // TEXT AREA - value 
 
    // CHECK BOX - checked state 
 
    // RADIO BUTTON - checked state 
 
    // SELECT LIST - selected Index 
 

 
    // Application Notes and Customising Variables 
 

 
    // Application Notes 
 

 
    // Values and states of each element are stored 
 
    // as the page is unloaded or form submitted. 
 

 
    // The storage duration is specified by a customising variable 
 

 
    // Stored values and states of elements included in the cookie 
 
    // are re-established as the page is reloaded. 
 

 
    // The number and type of elements included must respect 
 
    // the maximum cookie size of 4K. 
 

 
    // The Retrieval is initialised by a <BODY> onload event 
 
    // The Storage occurs on a <BODY> onunload event 
 
    // e.g. 
 
    // <body onload="f19_GetFormCookie();" onunload="f19_SetFormCookie();" > 
 

 

 
    // To include a form element in the Store and Retrieve 
 
    // it must be child nodes of an element with a title of 'f19_Include' 
 
    // e.g. 
 
    // <span title="f19_Include" > 
 
    // <INPUT type="text" size="10" > 
 
    // <INPUT type="checkbox > 
 
    // </span> 
 

 
    // There may be any number of elements titled 'f19_Include' on a page 
 
    // and as many child elements of each 'f19_Include' as required. 
 

 
    // All variable, function etc. names are prefixed with 'f19_' 
 
    // to minimise conflicts with other JavaScripts 
 

 

 
    // Customising Variables 
 

 
    var f19_Days = 1; // The cookie will be available on revisits for a specified number of days 
 
    var f19_Cookie = 'My Form2'; // The Cookie name 
 

 
    //--> 
 
    </script> 
 

 
    <script language="JavaScript" type="text/javascript"> 
 
    <!-- 
 
    // Form Compendium f19_Part2 (12-05-2005) 
 

 

 

 
    // Functional Code 
 

 
    // No Need To Change *************************** 
 
    var f19_TBAry = new Array(); 
 
    var f19_RCAry = new Array(); 
 
    var f19_TAAry = new Array(); 
 
    var f19_SLAry = new Array(); 
 

 
    var f19_TBString, f19_RCString, f19_TAString, f19_SLString; 
 
    var f19_, f19_exp, f19_st, f19_len, f19_end, f19_st; 
 

 
    var f19_Exp = new Date(new Date().getTime() + f19_Days * 86400000).toGMTString(); 
 

 
    function f19_GetFormCookie() { 
 
     f19_TBString = f19_GetCookie(f19_Cookie + 'TB'); 
 
     f19_RCString = f19_GetCookie(f19_Cookie + 'RC'); 
 
     f19_SLString = f19_GetCookie(f19_Cookie + 'SL'); 
 
     f19_TAString = f19_GetCookie(f19_Cookie + 'TA'); 
 
     f19_ = document.getElementsByTagName('*'); 
 
     for (f19_0 = 0; f19_0 < f19_.length; f19_0++) { 
 
     if (f19_[f19_0].title == 'f19_Include') { 
 
      f19_Inc = f19_[f19_0].getElementsByTagName('*'); 
 
      for (f19_1 = 0; f19_1 < f19_Inc.length; f19_1++) { 
 
      if (f19_Inc[f19_1].tagName == 'INPUT') { 
 
       if (f19_Inc[f19_1].type == 'text') { 
 
       f19_TBAry[f19_TBAry.length] = f19_Inc[f19_1]; 
 
       } 
 
       if (f19_Inc[f19_1].type == 'radio' || f19_Inc[f19_1].type == 'checkbox') { 
 
       f19_RCAry[f19_RCAry.length] = f19_Inc[f19_1]; 
 
       } 
 
      } 
 
      if (f19_Inc[f19_1].tagName == 'TEXTAREA') { 
 
       f19_TAAry[f19_TAAry.length] = f19_Inc[f19_1]; 
 
      } 
 
      if (f19_Inc[f19_1].tagName == 'SELECT') { 
 
       f19_SLAry[f19_SLAry.length] = f19_Inc[f19_1]; 
 
      } 
 
      } 
 
     } 
 
     } 
 
     if (f19_TBString) { 
 
     for (f19_1 = 0; f19_1 < f19_TBAry.length; f19_1++) { 
 
      f19_TBAry[f19_1].value = f19_TBString.split('~^~')[f19_1]; 
 
     } 
 
     } 
 
     if (f19_RCString) { 
 
     for (f19_2 = 0; f19_2 < f19_RCAry.length; f19_2++) { 
 
      f19_RCAry[f19_2].checked = false; 
 
      if (f19_RCString.split('~^~')[f19_2] == 'true') { 
 
      f19_RCAry[f19_2].checked = true; 
 
      } 
 
     } 
 
     } 
 
     if (f19_TAString) { 
 
     for (f19_3 = 0; f19_3 < f19_TAAry.length; f19_3++) { 
 
      f19_TAAry[f19_3].value = f19_TAString.split('~^~')[f19_3]; 
 
     } 
 
     } 
 
     if (f19_SLString) { 
 
     for (f19_4 = 0; f19_4 < f19_SLAry.length; f19_4++) { 
 
      f19_SLAry[f19_4].selectedIndex = f19_SLString.split('~^~')[f19_4]; 
 
     } 
 
     } 
 
    } 
 

 
    function f19_GetCookie(name) { 
 
     var f19_st = document.cookie.indexOf(name + "="); 
 
     var f19_len = f19_st + name.length + 1; 
 
     if ((!f19_st) && (name != document.cookie.substring(0, name.length))) return null; 
 
     if (f19_st == -1) return null; 
 
     var f19_end = document.cookie.indexOf(";", f19_len); 
 
     if (f19_end == -1) f19_end = document.cookie.length; 
 
     return decodeURI(document.cookie.substring(f19_len, f19_end)); 
 
    } 
 

 
    function f19_SetFormCookie(value) { 
 
     f19_TBString = ''; 
 
     for (f19_0 = 0; f19_0 < f19_TBAry.length; f19_0++) { 
 
     f19_TBString += f19_TBAry[f19_0].value + '~^~'; 
 
     } 
 
     document.cookie = f19_Cookie + "TB=" + encodeURI(f19_TBString) + ";expires=" + f19_Exp + ";path=/;" 
 
     f19_RCString = ''; 
 
     for (f19_1 = 0; f19_1 < f19_RCAry.length; f19_1++) { 
 
     f19_RCString += f19_RCAry[f19_1].checked + '~^~'; 
 
     } 
 
     document.cookie = f19_Cookie + "RC=" + encodeURI(f19_RCString) + ";expires=" + f19_Exp + ";path=/;" 
 
     f19_TAString = ''; 
 
     for (f19_0 = 0; f19_0 < f19_TAAry.length; f19_0++) { 
 
     f19_TAString += f19_TAAry[f19_0].value + '~^~'; 
 
     } 
 
     document.cookie = f19_Cookie + "TA=" + encodeURI(f19_TAString) + ";expires=" + f19_Exp + ";path=/;" 
 
     f19_SLString = ''; 
 
     for (f19_1 = 0; f19_1 < f19_SLAry.length; f19_1++) { 
 
     f19_SLString += f19_SLAry[f19_1].selectedIndex + '~^~'; 
 
     } 
 
     document.cookie = f19_Cookie + "SL=" + encodeURI(f19_SLString) + ";expires=" + f19_Exp + ";path=/;" 
 
    } 
 

 

 
    //--> 
 
    </script> 
 
</body> 
 

 
</html>

+0

Почему javascript? Почему не ссылки? –

+0

javascript предназначен для создания/хранения файлов cookie, поэтому он должен быть там. Мне нужно изменить type = "radio" на type = "button" и по-прежнему работать нормально. – Heli

ответ

0

Вы можете использовать OnClick событие на радиокнопок: http://www.dyn-web.com/tutorials/forms/radio/onclick-onchange.php

Вы можете изменить код, чтобы использовать кнопки вместо радиокнопок. Это должно выглядеть следующим образом:

<button name="b1" onclick="f19_SetFormCookie('Baseball')">Baseball</button> 
    <button name="b2" onclick="f19_SetFormCookie('Basketball')">Basketball</button> 
    <button name="b3" onclick="f19_SetFormCookie('Soccer')">Soccer</button> 
    <button name="b4" onclick="f19_SetFormCookie('Fencing')">Fencing</button> 

Тогда вам придется изменить функцию SetFormCookie принять аргумент - на основе которой куки будут установлены.

+0

есть ли способ изменить тип на «кнопку» вместо «радио» и все-таки сделать эту работу? Потому что я предпочитаю, чтобы поле выбора не имело галочки и могло иметь эффект зависания. – Heli

+0

Я думаю, что в Link() для изменения типа кнопки требуется какая-то модификация, но я не уверен, что менять. – Heli