functie in src-bijlage niet gedefinieerd

Status
Niet open voor verdere reacties.

JohanDerks

Verenigingslid
Lid geworden
2 dec 2006
Berichten
82
In het HTML-gedeelte van een php-script “taalwereld” staat een button met
Code:
<button type="button" onclick="style=………………; creeergroot('ar');">
De functie creeergroot() is te vinden in een src-scriptbijlage "IMWtm.js", die luidt:
Code:
function creeergroot(lingvo) {
    strurl = "………”;	
    alert(strurl);
    alert(specifgroot);  
    grootvenster = window.open(strurl, "GTega", specifgroot);
    grootvenster.focus();
    mklingvo = lingvo; 
}
IMWtm.js is gecontroleerd op fouten met http://jshint.com/ en goed bevonden.
Bij uitvoeren van “taalwereld” krijg ik een referentiefout m.b.t. de functie creeergroot (niet gedefinieerd)
Ik dacht, dat bij een functie-oproep geen fout in de scope kon spelen.
Wat kan er dan wel aan de hand zijn?
Dank voor interesse
 
Er mist wat info voor een antwoord, bijvoorbeeld wat is ar bij de button in creeergroot('ar');
Misschien kan je hier alvast iets mee verder maar het is nog niet volledig.
Code:
<button type="button" style="....." onclick="creeergroot('ar');">
<script>
function creeergroot(lingvo) {
  var strurl = document.getElementById('id_van_element_met_url').getAttribute('href');
  ...
}
 
'ar' is de afkorting van arabisch. Die wordt in een string ingebouwd, waarmee een vertaling van een gegeven vast woord met behulp van Google Translate vertaald wordt in het arabisch. Het is dus de taalcode voor de doeltaal van Google Translate. 'ar' wordt dus ingebouwd in strurl, de string-url voor de gezochte vertaling.
 
Duidelijk.

RE: ... Bij uitvoeren van “taalwereld” krijg ik een referentiefout ...
Klopt want je wilt in de eerste regel van je functie de url ophalen uit een onbekend element (of je zal de url zelf als string moeten opgeven).
Waar staat de url (href?) en wil je 'ar' ergens in deze url verwerken?
 
strurl is als string opgegeven:
Code:
strurl = "http://translate.google.com/#" + tL + "|" + lingvo + "|" + tV + "%0A" + tV + "%0A" + tV + "%0A" + tV + "%0A" + tV;
Nu gaat het er maar om, of de variabelen tV en tL binnen de scope van die strurl (of omgekeerd?) staan.
Dat ik dat niet schreef, is omdat er dan volgens mij geen referentiefout m.b.t. strurl ontstaat, maar m.b.t. tV en tL.
Of zie ik dat fout?
 
Er zijn in de url wat tekens die je beter niet kan of niet mag gebruiken, bijvoorbeeld de "|".
Onveilig zijn < > " # % { } | \ ^ ~ [ ] ` en de spatie
Gereserveerd zijn / ; ? : @ = &

Een variabele die in de global scope (dus niet in een functie) is gedeclareerd is binnen functies te gebruiken.
Hieronder een Google Translate voorbeeld
Code:
<script>
var sourceLang = "nl";
var textToTranslate = "Huis";
var specifgroot = "width=800,height=600,left=100,top=50,menubar=no,toolbar=no";
function creeergroot(lingvo) {
  var strurl = "https://translate.google.com/#" + sourceLang + "/" + lingvo + "/" + textToTranslate;
  grootvenster = window.open(strurl, "GTega", specifgroot);
  grootvenster.focus();
  mklingvo = lingvo;
}
</script>
<button type="button" style="font-weight:bold;" onclick="creeergroot('ar');">Arabisch</button>
 
Laat ik een andere vraag stellen:
Hoe kan een functie zonder syntaxisfouten als niet gedefinieerd aangemerkt worden?
Of:
Als een variabele binnen een functie niet gedefinieerd is, is daarmee dan de hele functie niet gedefinieerd (volgens Webconsole)?
 
Laatst bewerkt:
Ja, als een variabele of functie in een extern JS bestand wordt gedeclareerd kan je die gebruiken nadat je het JS bestand hebt geladen met <script src="..."></script>
 
Laatst bewerkt:
Ik zie onder het menu Onderwerpopties slechts: "vraag als niet opgelost markeren" in plaats van "vraag als opgelost markeren".
 
Dan is de vraag als "opgelost" gemarkeerd en kan je 'm eventueel weer met dit linkje op "niet opgelost" zetten.

opgelost.jpg
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan