我們試圖從DOM中獲取tinyMCE對象以設置文本,但不幸的是,當我們在頁面中注入JavaScript代碼時,它不工作,而相同的代碼在Javascript Console中完美執行(鉻)。javascript對象的DOM奇怪問題
的代碼如下:
<script language="javascript">
var testing = 'test';
var curFrames;
var curUrl;
var mFrames;
var cFrame;
var editor;
var editor2;
window.onload=CodeOnLoad ;
//Javascript that runs on load
function CodeOnLoad() {
curFrames=document.getElementsByTagName("frame");
curFrames[0].onload = function() {
curUrl= curFrames[0].contentDocument.getElementById("the_iframe").src;
console.log(curUrl)
if (curUrl.indexOf("post")!=-1)
{
mFrames=document.getElementsByTagName("frame");
cFrame = mFrames[0].contentDocument.getElementById('the_iframe');
editor = cFrame.contentWindow.tinymce;
editor2 = editor.activeEditor;
}
}
}
</script>
上面的代碼將允許我們使用:
editor.activeEditor (which will return the correct editor object) // Only when we test it in the Browser Javascript console
同時:
editor2 = editor.activeEditor; (the last line of the code - will return null)
確定的編輯框已經嘗試訪問'editor.activeEditor'時加載?它看起來像你試圖訪問尚未加載的對象 - 你需要對iframe進行一些onload回調。 – nrabinowitz 2012-03-20 17:23:32