2010-05-17 7 views
3

J'ai un script qui relie au serveur je suis d'hébergement (IP peut changer) habituellement je voudrais simplement utiliser des liens:Vous voulez définir 'src' du script sur mon chargement IP-Won't dans Safari ou Chrome. lien relatif asp.netmvc

var url ='http://' + window.location.hostname + 'end of url'; 

Mais dans ce cas, il apparaît isnt être si facile.

J'ai essayé: (1)

$('#scriptid').attr('src', url); 

ainsi que: (2)

var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.src = url; 
$("#insert").append(script); 

maintenant le cas (2) fonctionne charge le script exécute le script. Mais quand à la fin de mon script il frappe les 'données d'écriture' il décide de remplacer la page entière avec juste les données.

Une idée sur comment je peux le faire?


Note: J'utilise html simplement pas ASP. Avec le backend ASP, c'est comme ça que ça doit être.

Ok il est maintenant

<script src="myscript.js"></script> 

C#

router.AddAsyncRoute("myscript.js"...... 

Il workes dans IE & FF. Mais je reçois des pages blanches dans Chrome & Safari. J'utilise document.write pour écrire un script sur ma page.

Des idées pourquoi Chrome & Safari n'aime pas cela?

Je suis si loin en supposant que dans Crhome & Safari il faut plus de temps pour exécuter le script, ce qui lance le document.write après que le DOM a chargé, donc en remplaçant la page par une vierge.

Des idées comment je peux contourner cela? Je ne suis pas sûr de savoir comment implémenter un appenChild dans ce cas car le script change constamment avec les données en direct. Donc, chaque actualisation, il sera généralement changé quelques-uns ...


Ainsi, la mise en route ne fait fonctionne parfaitement bien .. j'avais des problèmes avec le charger non pas à cause de mon document.write oui je sais son méchant mais parce que Skype monopolisait le port 80 mais seulement pour Safari et Chrome parce que j'avais utilisé FF & IE avant que skype ne démarre. Ainsi, un disable simple, de laisser skype ont le port 80 dans les options de connexion et le

<script src="myscript.js"></script> 

&

router.AddAsyncRoute("myscript.js"...... 

travail parfaitement bien ^^

La question reste encore comme je voudrais encore pour savoir (si possible) comment définir la balise 'src' d'un script sur une variable? Ne pas utiliser les chemins absolus (nom de domaine, adresse IP).

+0

Utilisez-vous 'document.write' dans le script que vous chargez? C'est un gros non-non après que le DOM (XHTML) soit terminé. http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite –

+0

Cela pourrait être un problème tout travail autour? – Sphvn

+0

Aucun travail nécessaire, utilisez les fonctions DOM appropriées à manipuler. ('document.createElement' et' node.appendChild' etc.) –

Répondre

2

Utilisez juste le chemin relatif à votre script et vous êtes bon. Ensuite, vous ne devrez pas faire de ce remplacement, etc Par exemple, si votre script est appelé my_script.js n'utilisez pas src="http://...my_script.js" utilisez src="my_script.js".

+0

Je vois que vous obtenez l'URL de la même page, donc le script semble être local. Pourriez-vous s'il vous plaît expliquer un peu plus? – nc3b

Questions connexes