HMTL en Google Chrome ??

Status
Niet open voor verdere reacties.

frans kooijman

Gebruiker
Lid geworden
22 apr 2008
Berichten
531
Hi,
Ik heb op de homepage een invulformulier, waarbij een waarde uit een tabel geselecteerd moet worden. Bij alle browsers gaat dit goed, maar niet bij Google Chrome.
Normaal zou na het intypen van de 3e karakter al een validate met de onderliggende tabel plaatsvinden, maar bij Chrome komt er niets tevoorschijn, dus er vindt geen validatie plaats.

Weet iemand of ik iets in HTML moet toevoegen, zodat de tabel ook in Google Chrome werkt? Ik werk met Dreamweaver, maar dat lijkt met er niets mee te maken te hebben.

Dank, dank, dank,
Frans
 
Normaal zou na het intypen van de 3e karakter al een validate met de onderliggende tabel plaatsvinden, maar bij Chrome komt er niets tevoorschijn, dus er vindt geen validatie plaats.
Even raden: je gebruikt daarvoor javascript. En deze werkt niet goed in Chrome.

Nou, het is maar een gok. Iets meer uitleg is gewenst, een online voorbeeld, etcetera. Hier kunnen we niet heel veel mee.
 
Normaal gesproken zou je niet iets toe moeten voegen om het in Chrome te laten werken. Als je nou even je code post kunnen we wellicht kijken wat er aan schort.
 
HTML en Chrome

Dank alvast voor de HTML check. Het gaat om invullen van een vertrekplaats en een aankomstplaats voor online boeken van vliegtickets. Weet je waar de Google Chrome ingevuld moet worden (en welke code)?

Dank je,
Frans


<div align="left">
<span class="wittextsmall">
<input type="hidden" name="departureAirport" id="departureAirport" value=""/>
<input onchange="checkIfEmpty(this.id, 'ReturnDestinationAirport')" name="departureAirport_SEARCH" class="textsmall" size="20" id="departureAirport_SEARCH" onkeyup="checkIfEmpty(this.id, 'ReturnDestinationAirport');trySearch('departureAirport');" onkeydown="goToDestinations(event);" value="" autocomplete="off"/>
</span>
<div style="z-index:999" id="departureAirport_List"></div>
</div>
</td>
<td>

<div align="left">
<span class="wittextsmall">
<input type="hidden" name="destinationAirport" id="destinationAirport" />
<input onchange="checkIfEmpty(this.id, 'returnDepartureAirport')" name="destinationAirport_SEARCH" class="textsmall" size="20" maxLength="30" id="destinationAirport_SEARCH" onkeydown="goToDestinations(event);" onkeyup="checkIfEmpty(this.id, 'returnDepartureAirport');trySearch('destinationAirport');" autocomplete="off"/>
</span>
<div style="z-index:999" id="destinationAirport_List"></div>
</div> </td>

</tr>
 
Het javagedeelte is onderstaand:

//minimale zoeklengte
var minLength = 3;
var xmlhttp;
var boxID = 0;
var IE = ( navigator.appVersion.indexOf("MSIE") != -1 )


function ajax()
{
try
{
// Firefox, Opera 8.0+, Safari
xmlhttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
}


function trySearch(id)
{
ajax();
boxID = id;
document.getElementById(boxID).value = '';
var q = document.getElementById(boxID+'_SEARCH') != null ? document.getElementById(boxID+'_SEARCH').value : "";
if(q.length>=minLength){
search(q);
}
else{
document.getElementById(boxID+'_List').innerHTML = '';
document.getElementById(boxID+'_List').style.display = 'none';
}
}

function search(q)
{
xmlhttp.open("GET", "searchforms/searchlocations.aspx?q=" + q, true);

xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4)
processResult();
};
xmlhttp.send('');

}

function processResult()
{
// create an instance of XSLTProcessor
var processor = new XSLTProcessor();
var xslDoc = Sarissa.getDomDocument();
xslDoc.async = false;
xslDoc.load("xslt/airportList.xslt");
if(xslDoc.parseError != null &&
xslDoc.parseError.errorCode != 0)
alert("not well formed or other error!");
else {
processor.importStylesheet(xslDoc);
var newDocument = processor.transformToDocument(xmlhttp.responseXML);
// show transformation results
document.getElementById(boxID+'_List').innerHTML = new XMLSerializer().serializeToString(newDocument);
document.getElementById(boxID+'_List').style.display = 'block';
}
}

function setAirport(iata,name)
{
document.getElementById(boxID).value = iata;
document.getElementById(boxID+'_SEARCH').value = name;
document.getElementById(boxID+'_List').innerHTML = '';
document.getElementById(boxID+'_List').style.display = 'none';

if(CopyDestinations)
{
CopyDestinations(boxID);
}
else
{
CopyDepartures();
}

if(document.getElementById("frDest"))
{
HideMenu3();
}
}

function endSearch(wait)
{
if(wait==null)
{
setTimeout('endSearch(1)',100);
}
else
{
var arrLists = ['departureAirport', 'destinationAirport'];
for(var i=0;i<arrLists.length;i++)
{
if(document.getElementById(arrLists + '_List'))
{
document.getElementById(arrLists + '_List').innerHTML = '';
document.getElementById(arrLists + '_List').style.display = 'none';
}
}
}
}

//-----------------------------------------------------------------------------

function goToDestinations(e){
var key;

if (e.which){
key = e.which;
}else if (e.keyCode){
key = e.keyCode;
}

if(key==40){
if (IE){
document.getElementById('destination_1').style.visibility = 'visible';
document.getElementById('destination_1').focus();
document.getElementById('totalResult').scrollTop = 0;
}
else
{
document.getElementById('destination_1').focus();
document.getElementById('totalResult').scrollTop = 0;
}

document.getElementById('row_1').className = 'ListItemHover';
return false;
}
}

function toggleDestinations(pos, e, total, val){

var DaIndexId = pos;
var key;

if (e.which){
key = e.which;
}else if (e.keyCode){
key = e.keyCode;
}
document.getElementById('row_' + parseInt(DaIndexId)).className = 'ListItem';
if(key==38 && DaIndexId>0) { //keyUp

if (DaIndexId==1){
if (IE){
document.getElementById('destination_' + total).style.visibility = 'visible';
document.getElementById('destination_' + total).focus();
}
else
{
document.getElementById('destination_' + total).focus();
}
document.getElementById('totalResult').scrollTop = 9999999;
document.getElementById('row_' + total).className = 'ListItemHover';
return false;

}else{

if (IE){

document.getElementById('destination_' + parseInt(DaIndexId-1)).style.visibility = 'visible';
document.getElementById('destination_' + parseInt(DaIndexId-1)).focus();
document.getElementById('totalResult').scrollTop = parseInt(document.getElementById('totalResult').scrollTop) - 10;
}
else
{
document.getElementById('destination_' + parseInt(DaIndexId-1)).focus();
}
document.getElementById('row_' + parseInt(DaIndexId-1)).className = 'ListItemHover';
return false;
}
}
else if(key==40) { //keyDown

if (DaIndexId==total){
if (IE) {
document.getElementById('destination_1').style.visibility = 'visible';
document.getElementById('destination_1').focus();
}
else
{
document.getElementById('destination_1').focus();
}
document.getElementById('totalResult').scrollTop = 0;
document.getElementById('row_1').className = 'ListItemHover';
return false;

}else{
if (IE) {
document.getElementById('destination_' + parseInt(DaIndexId+1)).style.visibility = 'visible';
document.getElementById('destination_' + parseInt(DaIndexId+1)).focus();
document.getElementById('totalResult').scrollTop = parseInt(document.getElementById('totalResult').scrollTop) + 10 ;
}
else
{
document.getElementById('destination_' + parseInt(DaIndexId+1)).focus();
}

document.getElementById('row_' + parseInt(DaIndexId+1)).className = 'ListItemHover';
return false;
}
}
else if(key == 9) //tab
{
arrVal = val.split('|');
setAirport(arrVal[0],arrVal[1]);
}
else if(key == 13) //enter
{
arrVal = val.split('|');
setAirport(arrVal[0],arrVal[1]);
}
}

function checkIfEmpty(thisid, targetid)
{
if(document.getElementById(thisid).value == "")
{
document.getElementById(targetid).value = "";
if(document.getElementById(targetid + "_SEARCH"))
{
document.getElementById(targetid + "_SEARCH").value = "";
}
}
}

function CopyDestinations()
{
var f = document.formulierQuickSearch;
if (f.returnDepartureAirport.value == '')
{
f.returnDepartureAirport.value = f.destinationAirport.value;
//f.returnDepartureAirport_SEARCH.value = f.destinationAirport_SEARCH.value;
}
f.returnDestinationAirport.value = f.departureAirport.value;
//f.ReturnDestinationAirport_SEARCH.value = f.departureAirport_SEARCH.value;
}

function validateIATA(IATA)
{
//eerst check of er wel een mogelijke iata is ingevuld (is altijd 3 letters)
if(IATA.length!=3){
return false;
}

xmlhttp.open("GET", "searchforms/searchlocations.aspx?q=" + IATA, false);
xmlhttp.send('');

var xmlDoc = xmlhttp.responseXML;
xmlDoc.setProperty("SelectionLanguage", "XPath");
var oElem = xmlDoc.selectSingleNode('//IsIata/text()');

var result = new XMLSerializer().serializeToString(oElem) ;

return result=="true";
}
 
Figured. Volgende keer even [html ] [/ html] om je code zetten, daar wordt iedereen blijer van :)


De reden dat ik om een online voorbeeld vroeg is dat dit (je geposte code) niet veel meer duidelijk maakt. Het is net even iets te veel. Zou je een link naar (eventueel alleen een voorbeeld) de pagina kunnen geven?
 
Crhome

Ja, de link is www.zuidastravel.nl . In het zoekformulier aan de linkerzijde lukt het invullen van de vertrek- en aankomstplaats niet in Chrome.

Het heeft ermee te maken dat in Javascript Chrome niet genoemd staat en wel de andere browsers. Ik weet alleen niet hoe ik Chrome als ondersteunende browser moet invoeren.

Dank je voor het kijken,
Frans

function ajax()
{
try
{
// Firefox, Opera 8.0+, Safari
xmlhttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
 
Nee, dit heeft 100% zeker niet met je ajax-functie te maken. Dat het niet genoemt wordt, maakt helemaal niets uit.

Anywho, ik heb even je zoekding ingevult, en het werkt inderdaad niet in Chrome.
Ik krijg de volgende errors:
XHR finished loading: "http://www.zuidastravel.nl/searchforms/searchlocations.aspx?q=londeneeee".
www.zuidastravel.nl/js/searchlocations.js:73Uncaught TypeError: Object #<a Document> has no method 'load'
searchlocations.aspxResource interpreted as other but transferred with MIME type text/xml.
het gaat om deze regel:
[JS] xslDoc.load("xslt/airportList.xslt"); [/JS]
en die komt uit deze functie:
[JS]
function processResult()
{
// create an instance of XSLTProcessor
var processor = new XSLTProcessor();
var xslDoc = Sarissa.getDomDocument();
xslDoc.async = false;
xslDoc.load("xslt/airportList.xslt");
if(xslDoc.parseError != null &&
xslDoc.parseError.errorCode != 0)
alert("not well formed or other error!");
else {
//alert(xmlhttp.responseText);
processor.importStylesheet(xslDoc);
var newDocument = processor.transformToDocument(xmlhttp.responseXML);
// show transformation results
document.getElementById(boxID+'_List').innerHTML = new XMLSerializer().serializeToString(newDocument);
document.getElementById(boxID+'_List').style.display = 'block';
}
}[/JS]
nu, het kan dus blijkbaar niet de functie 'load' in het object getDomDocument (komt uit Sarissa-geval ergens). Ik weet niet precies wat dit framework allemaal doet, maar als ergens een oplossing gaat komen, is het daarvan.

Dus, even melden waar je dat Sarissa geval vandaan hebt, of hen een mail sturen. Mocht je een oplossing van hen krijgen, deze graag hier ook posten.


:thumb:
 
Laatst bewerkt:
Aha, daar moet het inderdaad in zitten. In Sarissa staat Chrome er niet bij,
Is het denk je een kwestie van Chrome hier op een bepaalde manier tussen zetten???

function Sarissa(){}
Sarissa.VERSION = "0.9.9";
Sarissa.PARSED_OK = "Document contains no parsing errors";
Sarissa.PARSED_EMPTY = "Document is empty";
Sarissa.PARSED_UNKNOWN_ERROR = "Not well-formed or other error";
Sarissa.IS_ENABLED_TRANSFORM_NODE = false;
Sarissa.REMOTE_CALL_FLAG = "gr.abiss.sarissa.REMOTE_CALL_FLAG";
/** @private */
Sarissa._sarissa_iNsCounter = 0;
/** @private */
Sarissa._SARISSA_IEPREFIX4XSLPARAM = "";
/** @private */
Sarissa._SARISSA_HAS_DOM_IMPLEMENTATION = document.implementation && true;
/** @private */
Sarissa._SARISSA_HAS_DOM_CREATE_DOCUMENT = Sarissa._SARISSA_HAS_DOM_IMPLEMENTATION && document.implementation.createDocument;
/** @private */
Sarissa._SARISSA_HAS_DOM_FEATURE = Sarissa._SARISSA_HAS_DOM_IMPLEMENTATION && document.implementation.hasFeature;
/** @private */
Sarissa._SARISSA_IS_MOZ = Sarissa._SARISSA_HAS_DOM_CREATE_DOCUMENT && Sarissa._SARISSA_HAS_DOM_FEATURE;
/** @private */
Sarissa._SARISSA_IS_SAFARI = navigator.userAgent.toLowerCase().indexOf("safari") != -1 || navigator.userAgent.toLowerCase().indexOf("konqueror") != -1;
/** @private */
Sarissa._SARISSA_IS_SAFARI_OLD = Sarissa._SARISSA_IS_SAFARI && (parseInt((navigator.userAgent.match(/AppleWebKit\/(\d+)/)||{})[1], 10) < 420);
/** @private */
Sarissa._SARISSA_IS_IE = document.all && window.ActiveXObject && navigator.userAgent.toLowerCase().indexOf("msie") > -1 && navigator.userAgent.toLowerCase().indexOf("opera") == -1;
/** @private */
Sarissa._SARISSA_IS_OPERA = navigator.userAgent.toLowerCase().indexOf("opera") != -1;
if(!window.Node || !Node.ELEMENT_NODE){
Node = {ELEMENT_NODE: 1, ATTRIBUTE_NODE: 2, TEXT_NODE: 3, CDATA_SECTION_NODE: 4, ENTITY_REFERENCE_NODE: 5, ENTITY_NODE: 6, PROCESSING_INSTRUCTION_NODE: 7, COMMENT_NODE: 8, DOCUMENT_NODE: 9, DOCUMENT_TYPE_NODE: 10, DOCUMENT_FRAGMENT_NODE: 11, NOTATION_NODE: 12};
}
 
dit is dus de reden waarom je nooit scripts op browsers moet schrijven; het kan zijn dat een onbekende niet werkt.

anywho, als het goed is zal chrome bij Mozilla (firefox) in zitten; Chrome ondersteund als eht goed is hetzelfde als firefox (en ik meen nog meer).

Ik denk dat je bij de maker van het script moet zijn, want het is een erg grote library.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan