Я, честно говоря, даже не знаю, где будет подходящее место, чтобы начать с этого, так что я с ним спотыкался. Я видел несколько подобных сообщений, но мне не удалось заставить работать.
То, что я хотел бы сделать, это использовать идентификатор div для получения определенного изображения с веб-сайта без необходимости жесткого кодирования ссылки на изображение. Например, одна из вещей, которые я пытаюсь сделать для этого, - это веб-комьюнити. Я бы хотел использовать тег div id = "comic-1" и получить img src= "...", с которым он подключился.
Я очень открыт методам этого. Вот что я пробовал совсем недавно:
wView.loadUrl("...");
wView.getSettings().setJavaScriptEnabled(true);
wView.getSettings().setLoadWithOverviewMode(true);
wView.getSettings().setUseWideViewPort(true);
wView.getSettings().setSupportZoom(true);
wView.getSettings().setBuiltInZoomControls(true);
wView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished (WebView webView, String url)
{
webView.loadUrl("javascript:document.getElementById('comic-1').src;");
}
Но он не загружает изображение. Он просто загружает сайт, как обычно.
Кроме того, это немного отключение, но я пытаюсь понять, как использовать эти теги в целом. Еще одна вещь, которую я хотел бы сделать, - удалить что-то внутри тега. Вот что я пробовал для этого:
webView.loadUrl("javascript:(function() { " +
"document.getElementsByTagName('header')[0].style.display=\"none\"; " +
"})()");
Я должен был включить блок HTML, с которым я работал. К сожалению, у меня нет идентификатора изображения.
<div id="comic-1" class="comicpane"><a href="" title="..."><img src="..." alt="..." title="..."/></a></div>
Вы можете попробовать следующее:
Блок HTML:
<div id="comic-1">
<img id="image" src="http://www.w3schools.com/jsref/compman.gif" width="107" height="98">
<img id="smile" src="http://www.w3schools.com/tags/smiley.gif" width="107" height="98">
</div>
Доступ к нему:
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(URL);
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView webView, String url)
{
webView.loadUrl("javascript:var s = document.getElementById('smile').src;document.write(s);");
}
});
Следуя приведенному выше примеру, это запишет источник изображения в документе.
[РЕДАКТИРОВАТЬ]
var parent = document.getElementById("comic-1");
var child = parent.getElementsByTagName("img");
document.write(" image 1 = " + child[0].src + " image 2 = " + child[1].src);
getElementsByTagName()
Проверьте мой отредактированный ответ.
comic-1
является тегомdiv
? Вы пытаетесь получить доступ кsrc
тегаdiv
а не тегаimg
. Тегdiv
не имеет атрибутаsrc
. Вместо этого вы можете дать идентификатор тегуimg
и получить к нему доступ с помощьюgetElementById('image').src