【问题标题】:How to convert string from [object HTMLDocument] in android or java如何在android或java中从[object HTMLDocument]转换字符串
【发布时间】:2016-08-18 13:47:38
【问题描述】:

我正在开发一个定制的壁虎驱动的安卓浏览器。我想在控制台打印源代码。

当我尝试打印时,它显示[object HTMLDocument]

代码如下:

 function onPageLoad(event) {
   // the target is an HTMLDocument
   let contentDocument = event.target;
 let browser = BrowserApp.getBrowserForDocument(contentDocument);
   console.log("Page loaded: " + browser.contentTitle);
   console.log("Page loaded content: " + browser.contentDocument);

 }

输出是页面加载的内容:[object HTMLDocument]

我想打印[object HTMLDocument]中的源代码。

【问题讨论】:

    标签: javascript java android gecko html-rendering


    【解决方案1】:

    啊,我明白了。试试:

    let contentDocument = event.target;
    console.log("Page loaded: " + contentDocument.title);
    var s = new XMLSerializer().serializeToString(contentDocument);
    console.log("Page loaded content: " + s);
    

    这至少对我有用(如果我正确理解您要打印的内容)。

    【讨论】:

    • 输出显示“页面加载的内容:未定义”。代码写在 javascript 文件中。
    • 是android studio中XMLSerializer的导入文件。我有一个错误是 JavaScript 错误:“ReferenceError: XMLSerializer is not defined”
    • 我认为是“import org.xmlpull.v1.XmlSerializer;”,希望它有效!
    • 它帮助我导入了 JavaScript,非常感谢!
    【解决方案2】:

    您是否尝试过将其转换为字符串?例如,console.log("页面加载:" + String(browser.contentTitle));

    【讨论】:

    • 结果显示为“页面加载:[object HTMLDocument]”。我要打印源代码。
    【解决方案3】:

    试试这个:

    HTMLEditorKit tmp = new HTMLEditorKit(); 
    HTMLDocument doc = (HTMLDocument) tmp.createDefaultDocument(); 
    StringWriter writer = new StringWriter();
    tmp.write(writer, doc, 0, doc.getLength());
    String s = writer.toString();
    console.log(s);
    

    我希望它会有所帮助。

    【讨论】:

    • 没有得到结果。 s 没有打印。
    • 好的,所以试着在这里检查一下:stackoverflow.com/questions/12035316/… - 这个 StringBuilder 的答案曾经对我有用 :)
    • 没有得到任何结果。
    【解决方案4】:

    console.log()函数中放入,而不是+作为console.log()也支持对象。只需用逗号分隔即可。

    console.log("Page loaded: " , browser.contentTitle);
    console.log("Page loaded content: " , browser.contentDocument);
    

    【讨论】:

    • 输出为 I/Gecko:console.log:页面加载:资产测试 I/Gecko:console.log:页面加载内容:HTMLDocument {"location":{"href":"resource: //android/assets/test.html","origin":"resource://android","protocol":"resource:","username":"","password":"","host": "android","hostname":"android","port":"","pathname":"/assets/test.html","search":"","hash":""}}
    • 不能使用逗号。
    • 它只是显示它包含的内容。 browser.contentTitlebrowser.contentDocument 不包含任何源代码。我猜event.target 会给你源代码。
    • 这里是源代码github.com/ncalexan/geckobrowser-gradle请帮助我
    • 我想突出显示Skype“点击通话”服务等电话号码。如何使用此代码。请帮助我
    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 2021-12-08
    • 2011-06-14
    • 2012-10-07
    • 2019-03-18
    • 2017-09-16
    相关资源
    最近更新 更多