2012-10-03 3 views
2

Je vois un problème se produire uniquement sur iOS 6, mais fonctionne bien sur iOS 6 version inférieure.stringByEvaluatingJavaScriptFromString ne fonctionne pas dans iOS 6

Mon application charge l'image à partir d'un lien qui a besoin d'agrandir ses pixels d'image pour peupler dans la taille de UIWebView en utilisant Javascript. L'image de lien est à l'origine en pixels 140x24.

Je vois qu'il est en cours d'exécution sur la ligne, mais l'image n'est pas mise à l'échelle en utilisant iOS 6 simulateur. Cela fonctionne dans iOS 5 simulateur. S'il vous plaît aider.

(void)webViewDidFinishLoad:(UIWebView *)webView { 

    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName(\"img\")(0).height=\"30\";document.getElementsByTagName(\"img\")(0).width=\"280\";"]; 

} 

Répondre

3

La syntaxe en javascript pour obtenir le n-ième élément d'un tableau utilise des accolades carrées, pas des parenthèses. Donc, utilisez document.getElementsByTagName("img")[0] et non document.getElementsByTagName("img")(0).

Je ne sais pas pourquoi il travaillait à iOS5, WebKit est probablement plus stricte dans iOS6 ...

astuce supplémentaire: pour déboguer des erreurs javascript sur iOS6, une nouvelle fonctionnalité rend très simple:

  • Accédez à l'application "Paramètres" de votre iPhone, entrez les paramètres "Safari" et appuyez sur "Avancé" en bas, puis activez "WebKit Inspector" à partir de là
  • Affichez votre page à déboguer à l'écran (c'est à dire lancer votre application et aller à votre écran qui con CONTIENT WebView pour le rendre visible)
  • Branchez votre iPhone à votre Mac via votre câble USB
  • Ouvrir Safari.app sur votre Mac, allez dans le menu "Développement" (1), sélectionnez l'élément de menu avec le nom de votre iPhone et sélectionnez votre application dans le sous-menu.

Vous serez alors en mesure de déboguer votre page Web présenté dans votre iPhone en utilisant le puissant Web inspecteur de votre Mac, et peut regarder dans la console javascript, l'arborescence DOM, etc.

(1 Si vous n'avez pas le menu "Développement" dans Safari sur votre Mac, vous pouvez l'activer dans l'onglet "Avancé" des préférences de l'application Safari.

+0

+1 Pour le débogage à distance via USB! – rjobidon

Questions connexes