Ewan83
Messages postés6Date d'inscriptionmercredi 8 septembre 2010StatutMembreDernière intervention10 février 2012
-
24 mars 2011 à 14:42
Utilisateur anonyme -
22 avril 2011 à 18:18
[^^!2][b]Attention : question de noob /b[^^happy3]
Bonjour,
Quelqu'un pourrait-il me dire pourquoi le petit module que je tente de faire pour créer un widget en m'appuyant sur la recherche de mon site principal ne fonctionne pas sur IE alors que ça marche avec tous les autres navigateurs... ?
Merci d'avance pour vos réponses
// Handlers that are to be called in the document's "onload" event
if (typeof forms_onloadHandlers == "undefined") {
// check in case script was already loaded
forms_onloadHandlers = new Array();
}
function forms_onload() {
for (var i = 0; i < forms_onloadHandlers.length; i++) {
forms_onloadHandlers[i].forms_onload();
}
// Clear it (we no more need them)
forms_onloadHandlers = null;
}
// Handlers that are to be called in form's "onsubmit" event
// FIXME: this single var implies only one form per page, and needs to be
// visited if we decide to support several forms per page.
if (typeof forms_onsubmitHandlers == "undefined") {
// check in case script was already loaded
forms_onsubmitHandlers = new Array();
}
function forms_onsubmit() {
if (forms_onsubmitHandlers == null) {
// Form already submited, but the new page is not yet loaded. This can happen when
// the focus is in an input with an "onchange" and the user clicks on a submit button.
return false;
}
for (var i = 0; i < forms_onsubmitHandlers.length; i++) {
if (forms_onsubmitHandlers[i].forms_onsubmit() == false) {
// handler cancels the submit
return false;
}
}
// clear it
forms_onsubmitHandlers = null;
return true;
}
/**
* Submit the form containing an element, also storing in the hidden
* 'forms_submit_id' field the name of the element which triggered the submit.
*/
function forms_submitForm(element, name) {
// Mac IE 5 doesn't recognize key word 'undefined', so use typeof and compare strings
if (typeof(name) == "undefined") {
name = element.name;
}
var form = forms_getForm(element);
if (form == null) {
alert("Cannot find form for " + element);
} else {
form["forms_submit_id"].value = name;
// FIXME: programmatically submitting the form doesn't trigger onsubmit ? (both in IE and Moz)
if(form.onsubmit() == true)
return;
form.submit();
// Block subsequent submits
form.onsubmit = function() {return false;}
}
}
/**
* Crawl the parents of an element up to finding a form.
*/
function forms_getForm(element) {
while(element != null && element.tagName != "FORM") {
element = element.parentNode;
}
return element;
}
/**
* Move a named element as an immediate child of the element.
* This is required for help popups inside tabs. The reason is that CSS positioning
* properties ("left" and "top") on a block with a "position: absolute" are actually relative to
* the nearest ancestor that has a position of "absolute", "relative" or "fixed".
* See http://www.w3.org/TR/CSS21/visudet.html#containing-block-details $4
*/
function forms_moveInBody(element) {
element.parentNode.removeChild(element);
document.body.appendChild(element);
}
/**
* Create a popup window for a named element.
*
* @param id the ID of the element to make a popup with.
*/
function forms_createPopupWindow(id) {
var result = new PopupWindow(id);
result.autoHide();
// add to onload handlers
result.forms_id = id;
result.forms_onload = function() {
forms_moveInBody(document.getElementById(this.forms_id));
}
forms_onloadHandlers.push(result);
return result;
}
function forms_createOptionTransfer(id, submitOnChange) {
var result = new OptionTransfer(id + ".unselected", id);
result.setAutoSort(true);
// add to onload handlers
result.forms_id = id;
result.forms_onload = function() {
var form = forms_getForm(document.getElementById(this.forms_id));
this.init(form);
sortSelect(this.left);
sortSelect(this.right);
}
result.submitOnChange = submitOnChange;
result.forms_transferLeft = function() {
this.transferLeft();
if (this.submitOnChange) {
forms_submitForm(document.getElementById(this.forms_id));
}
}
result.forms_transferRight = function() {
this.transferRight();
if (this.submitOnChange) {
forms_submitForm(document.getElementById(this.forms_id));
}
}
result.forms_transferAllLeft = function() {
this.transferAllLeft();
if (this.submitOnChange) {
forms_submitForm(document.getElementById(this.forms_id));
}
};
result.forms_transferAllRight = function() {
this.transferAllRight();
if (this.submitOnChange) {
forms_submitForm(document.getElementById(this.forms_id));
}
};
forms_onloadHandlers.push(result);
// add to onsubmit handlers
result.forms_onsubmit = function() {
// Select all options in the "selected" list to that
// its values are sent.
selectAllOptions(this.right);
}
forms_onsubmitHandlers.push(result);
return result;
}
/**
* Show a tab in a
*
* @param tabgroup (string) name of the
* @param idx (integer) index of the selected tab
* @param length (integer) total number of tabs
* @param state (string, optional) name of the input storing the tabgroup state
*/
function forms_showTab(tabgroup, idx, length, state) {
// Change state value
//if (state.length > 0) {
// document.forms[0][state].value = idx;
//}
for (var i = 0; i < length; i++) {
// Change tab status (selected/unselected)
var tab = document.getElementById(tabgroup + "_tab_" + i);
if (tab != null) {
tab.className = (i == idx) ? 'forms-tab forms-activeTab': 'forms-tab';
}
// Change tab content visibilty
var tabitems = document.getElementById(tabgroup + "_items_" + i);
if (tabitems != null) {
tabitems.style.display = (i == idx) ? '' : 'none';
// execute event handler if any
if (i == idx &&
window.onTabShownHandlers != null &&
window.onTabShownHandlers[tabgroup] != null) {
var onShowHandler = window.onTabShownHandlers[tabgroup][tabgroup + "_items_" + i];
if (onShowHandler != null) {
eval(onShowHandler);
}
}
}
}
}
//]]>
var NbSourcesCultBretonne = Formulaire.elements["listSearchRessourceCultBretonne.size"].value;
var NbSourcesFondNum = Formulaire.elements["listSearchRessourceFondNum.size"].value;
var NbSourcesBibUniv = Formulaire.elements["listSearchRessourceBibUniv.size"].value;
var NbSourcesPeriodic = Formulaire.elements["listSearchRessourcePeriodic.size"].value;
var NbSourcesFrance = Formulaire.elements["listSearchRessourceFrance.size"].value;
var NbSourcesEtranger = Formulaire.elements["listSearchRessourceEtranger.size"].value;
// For each available sources, checks if the current source is checked or not
for (var i = 0; i < NbSourcesCultBretonne; i++) {
// Adds needed information about selected source and ignore unselected ones
if (Formulaire.elements["listSearchRessourceCultBretonne." + i + ".bRessource"].checked == true) {
return true;
}
}
for (var i = 0; i < NbSourcesFondNum; i++) {
// Adds needed information about selected source and ignore unselected ones
if (Formulaire.elements["listSearchRessourceFondNum." + i + ".bRessource"].checked == true) {
return true;
}
}
for (var i = 0; i < NbSourcesBibUniv; i++) {
// Adds needed information about selected source and ignore unselected ones
if (Formulaire.elements["listSearchRessourceBibUniv." + i + ".bRessource"].checked == true) {
return true;
}
}
for (var i = 0; i < NbSourcesPeriodic; i++) {
// Adds needed information about selected source and ignore unselected ones
if (Formulaire.elements["listSearchRessourcePeriodic." + i + ".bRessource"].checked == true) {
return true;
}
}
for (var i = 0; i < NbSourcesFrance; i++) {
// Adds needed information about selected source and ignore unselected ones
if (Formulaire.elements["listSearchRessourceFrance." + i + ".bRessource"].checked == true) {
return true;
}
}
for (var i = 0; i < NbSourcesEtranger; i++) {
// Adds needed information about selected source and ignore unselected ones
if (Formulaire.elements["listSearchRessourceEtranger." + i + ".bRessource"].checked == true) {
return true;
}
}
alert( 'Vous devez sélectionner une source pour la recherche.' );
Ewan83
Messages postés6Date d'inscriptionmercredi 8 septembre 2010StatutMembreDernière intervention10 février 2012 10 avril 2011 à 22:06
Salut,
Merci de t'intéresser à mon problème ! :)
En fait, ce code affiche un moteur de recherche qui envoie les résultats de la recherche dans le catalogue sur le site de la bibliothèque (pour un widget netvibes et éventuellement un onglet de page Facebook). J'ai tenté de copier et adapter la balise <form> du site d'origine. La recherche abouti sur tous les navigateurs sauf sur IE ! Il est cependant probable qu'il y est une interférence avec un autre js sur le site d'origine...
Si tu as une idée, je suis preneur ! :)
++
Si ça marche sur tous les navigateurs sauf IE...Ça peut être à cause du JavaScript.
De mémoire, y'a pas une histoire entre IE et les //<![CDATA[ ? Ça remonte à loin ça
-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ewan83
Messages postés6Date d'inscriptionmercredi 8 septembre 2010StatutMembreDernière intervention10 février 2012 20 avril 2011 à 10:46
salut,
Excuse moi d'avoir tardé à répondre... J'étais sur d'autres projets.
J'ai essayé en enlevant la balise <style> et donc le cdata dedans mais rien n'y fait.
++
Normalement pour chaque message tu as une icône "Réponse acceptée". Clique sur cette icône qui est présente sur ton dernier message (qui comporte la résolution de ton problème =)
Bonne continuation
-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --