HTML web sayfası ve iki iframe ile bir web görünümü görüntüleyen yerel bir ios uygulamasına sahibiz. Bu iframe'lerin içinde, makalemizi, uygulamanın kaynaklarında bulunan HTML dosyalarından görüntüleriz. Makalelerin içinde, her iki makalede de aynı anda çalışan javascript betikleri vardır. Örneğin, metnin bir kısmını kalın yapın. Bunu yapmak için, belirli bir sınıfla tüm öğeleri listeler ve CSS stilini değiştirir. sadece Android'de geçerli iframe öğeleri döneceğini neredeAndroid WebView - başka bir iframe içindeki bir iframe'den erişim sınıfları
$(".question").length()
iOS, hem iframe'lerinde sınıfta .question
ile eleman sayısını döndürecektir. "Geçerli" ile, kullanıcının betiği başlatmak için etkileşimde bulunduğu anlamına gelir.
Ayrıca bir android uygulaması yayınlama gereksinimimiz var. Her şey iyiydi, javascript'in her iki iframe üzerinde çalıştığı bir makaleyi test edene kadar. Ne yazık ki, sadece bir iframe öğesinden erişebilir.
Makalelere eklenmiş javascript'lerin kodunu değiştirmeden çalışmanın herhangi bir yolu var mı? Orada otorite yok [ayrıca güncellemek için birçok özel javascript içeren binlerce makale olabilir].
i benzer bir durumwebview.loadDataWithBaseURL("file:///android_asset/", your_html_as_string_here, "text/html", "utf-8", null);
webview.getSettings().setJavaScriptEnabled(true); // enable javascript
webview.addJavascriptInterface(new WebViewJavaScriptInterface(getActivity()), "app");
yönetilen ve belirtilen aynı işlevi bir iç sınıf oluşturmak ve çağırmak zorunda böyle mi size
[bu] (https://stackoverflow.com/questions/11955413/accessing-elements-of-one-iframe-from-another-iframe) ve [this] (https: // stackoverflow. com/sorular/4132411/how-to-call-a- fonksiyon-içinde-bir-iframe-dan-ebeveyn-sayfa)? –
Evet, değiştirmem gereken bir yolun içeriğinde değişiklikler olmasını gerektiriyordu. – Krystian