Я пытаюсь запустить следующий код, чтобы назначить выбранный пользователем текст на веб-странице переменной.
Код работает нормально, если веб-страница (в которой был выделен текст) находится в главном окне, однако, если текст находится в iframe, то код вообще не может обнаружить iframe.
Javascript код -
var iframe_or_main= 'main';
var selection;
selection = document.getSelection();
if (!selection) //this means that user has selected text within an iframe (and not within main window)...
{
//this variable tells us that the user has selected text within an iframe...
//this is required when adding an element with translated text to web page...
iframe_or_main='iframe';
var id_of_iframe;
id_of_iframe= getIframeWithSelection(window);
console.log(" Content selected within an iframe- iframe id=" + id_of_iframe);
selection = getIFrameDocument(document.getElementById(id_of_iframe)).getSelection();
}
// return; // selection is probably in an iframe;
console.log(" Indicator - iframe or main? --" + iframe_or_main)";
console.log(" Iframe id (if applicable)=" + id_of_iframe);
Кроме того, вывод, когда я выбираю текст в iframe, показан ниже -
Indicator - iframe or main? --main
Iframe id (if applicable)=undefined
Обратите внимание, что я попытался выделить текст на веб-странице (открытой в iframe), которая принадлежит тому же домену, что и главная веб-страница. Я также попытался сделать это с той же политикой происхождения, отключенной в Google Chrome, используя параметры запуска, чтобы отключить ее. В обоих случаях я получаю тот же вывод, что и выше.
Что-то не так с моим кодом? Как мне это исправить?
Обратите внимание, что я хочу, чтобы код работал в Google Chrome, хотя, если он работает в других браузерах, это будет плюсом.