2015-02-09 3 views
0

Я скомпилировал JS-функцию, используя фрагменты из других фрагментов кода и некоторую обратную инженерию. Он работает именно так, как я хочу, в Firefox, но абсолютно ничего не делает в Chrome. Я начертил это и подтвердил его, и он вернулся хорошо, скажем, для некоторого форматирования.Есть ли валидатор кода для конкретного браузера?

Есть ли инструмент, который позволяет выборочную проверку путем эмуляции браузеров?

Виновник - выпадающий IFrame чейнджер: http://injurypreventioncentre.ca/stories

В ЯШ:

var xmlhttp; 
 

 
function loadXMLDoc(url, cfunc) { 
 
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
 
    xmlhttp = new XMLHttpRequest(); 
 
    } else { // code for IE6, IE5 
 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
 
    } 
 
    xmlhttp.onreadystatechange = cfunc; 
 
    xmlhttp.open("GET", url, true); 
 
    xmlhttp.send(); 
 
} 
 

 
function story() { 
 
    "use strict"; 
 
    loadXMLDoc("shareyourstory/story.txt", function() { 
 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
 
     document.getElementById("myDiv").innerHTML = xmlhttp.responseText; 
 
    } 
 
    }); 
 
} 
 

 
function January() { 
 
    "use strict"; 
 
    loadXMLDoc("shareyourstory/january.txt", function() { 
 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
 
     document.getElementById("myDiv").innerHTML = xmlhttp.responseText; 
 
    } 
 
    }); 
 
}

Каждый месяц является функцией.

И HTML называя его:

<select> 
 
    <option value="Please select month" onclick="story()" selected>Please select month</option> 
 
    <option value="January" onclick="January()">January</option> 
 
</select>

+1

Вы пробовали с помощью инструментов разработчика Chrome? – Dbz

+0

Stackoverflow предназначен для кодирования вопросов. У вашего так называемого вопроса нет кода. Поэтому не удивляйтесь, когда вы забираете голоса и закрыты –

+0

События 'onclick' на тегах' option' не работают во всех браузерах. Вам нужно вместо этого привязать обработчик кликов к окружающему элементу 'select'. См. [Этот вопрос] (http://stackoverflow.com/questions/1402227/click-event-on-select-option-element-in-chrome). –

ответ

0

После долгих мастерить, я рабочий код.

var loadedobjects = "" 
 
var rootdomain = "http://" + window.location.hostname 
 

 
function dynamicText(url, containerid) { 
 
    var page_request = false 
 
    if (window.XMLHttpRequest) // if Mozilla, Safari etc 
 
    page_request = new XMLHttpRequest() 
 
    else if (window.ActiveXObject) { // if IE 
 
    try { 
 
     page_request = new ActiveXObject("Msxml2.XMLHTTP") 
 
    } catch (e) { 
 
     try { 
 
     page_request = new ActiveXObject("Microsoft.XMLHTTP") 
 
     } catch (e) {} 
 
    } 
 
    } else 
 
    return false 
 
    page_request.onreadystatechange = function() { 
 
    loadpage(page_request, containerid) 
 
    } 
 
    page_request.open('GET', url, true) 
 
    page_request.send(null) 
 
} 
 

 
function loadpage(page_request, containerid) { 
 
    if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1)) 
 
    document.getElementById(containerid).innerHTML = page_request.responseText 
 
} 
 

 
function loadobjs() { 
 
    if (!document.getElementById) 
 
    return 
 
    for (i = 0; i < arguments.length; i++) { 
 
    var file = arguments[i] 
 
    var fileref = "" 
 
    if (loadedobjects.indexOf(file) == -1) { 
 
     if (file.indexOf(".js") != -1) { 
 
     fileref = document.createElement('script') 
 
     fileref.setAttribute("type", "text/javascript"); 
 
     fileref.setAttribute("src", file); 
 
     } 
 

 
    } 
 
    if (fileref != "") { 
 
     document.getElementsByTagName("head").item(0).appendChild(fileref) 
 
     loadedobjects += file + " " 
 
    } 
 
    } 
 
} 
 

 

 
function doChange(selectobjID, loadarea) { 
 
    var selectobj = document.getElementById ? document.getElementById(selectobjID) : "" 
 
    if (selectobj != "" && selectobj.options[selectobj.selectedIndex].value != "") 
 
    dynamicText(selectobj.options[selectobj.selectedIndex].value, loadarea) 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<form> 
 

 
    <select id="DynOptions" size="1" onChange="doChange('DynOptions', 'DynDiv')"> 
 
    <option value="">Please select month</option> 
 
    <option value="directory/option1.txt">Option 1</option> 
 
    <option value="option2.txt">Option 2</option> 
 
    </select> 
 

 
</form> 
 

 
<div id="DynDiv">Landing page text changes.</div>

Смежные вопросы