Цель C: доступ к исходному HTML-коду с вложенными iFrames, содержащими Javascript - PullRequest
0 голосов
/ 02 ноября 2019

Я взял на себя проект и боролся с ним. У нас есть HTML-парсер, встроенный в наше приложение. После нажатия кнопки «Импорт» он импортирует отображаемый в данный момент исходный код HTML определенного веб-сайта. Однако некоторые возможные источники импорта имеют этот кодированный источник, встроенный в несколько кадров. И более того, если вы посмотрите на стандартный исходный код HTML в Safari, вы даже не увидите соответствующие части, так как они каким-то образом генерируются Javascript и хранятся в DOM? Но если я посмотрю в Safari и позволю текущему выбранному кадру отобразить его исходный код, я вижу его правильно. И тогда Safari показывает эту древовидную иерархию фреймов:

Frame hierarchy

И в Objective-C после нажатия кнопки «Импорт» я пытаюсь получить доступсодержание как это:

NSString *javascriptToExec = @"window.frames['main_iframe'].frames['rep_iframe'].frames['bottomFrame'].document.body.innerHTML;";
NSString *htmlCode = [self.webview stringByEvaluatingJavaScriptFromString:javascriptToExec];

Однако строка htmlCode остается пустой ... есть идеи, почему? я получаю доступ неправильно? Содержимое обязательно находится во фрейме bottomFrame, поскольку, как я уже сказал, если я смотрю только на этот фрейм в исходном коде Safari, я вижу все, что мне нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...