动态创建的iFrame内容未显示(使其异步?)

时间:2018-08-03 17:19:25

标签: javascript html asynchronous iframe

我有这个代码。

我想做什么: 我想将一些JavaScript注入网站。

在这个网站上,人们可以买到各种各样的东西。

因此,有缩略图和指向页面的链接,您可以在其中查看要查看的内容。在那里您可以找到电话号码。

我想添加一个带有Chrome扩展程序的按钮。此按钮从下一页获取电话号码,并向按钮添加一个onclick事件(onclick =“ tel:xxxx”)。

因此,我尝试创建iframe,该iframe可以在不打开每个页面的情况下加载页面。从那里获取电话号码。

但是我无法使其工作。

iframe已创建,但我看不到内容。始终是未定义的。

代码尚未准备好。您将看不到创建的按钮。我被iFrame困住了,我不确定该怎么做才能解决此问题。

到目前为止,我的代码:

  let findeURL = (el) => {
    let url = el.querySelectorAll("a")[0].href
    console.log("url", url)
    return url
}

let iframesErstellen = (el, i, url) => {
    let iframe = document.createElement("iframe")
    iframe.src = url
    iframe.id = "iframe" + i
    el.appendChild(iframe)
}

let findeIframeDOM = function (i) {
    let getIframeContent = document.getElementById("iframe" + i)
    console.log(getIframeContent)
    let h1 = getIframeContent.contentWindow.document.getElementsByTagName("h1")[0]
    console.log(h1)
}

window.setTimeout(findeIframeDOM(2), 4000);

let findeTelefon = (el) => {
    let findeDts = document.querySelectorAll(".dl-horizontal dt")
    findeDts.forEach(function (a, i) {
        console.log(a, i)

        if (a.innerHTML.indexOf("Name") !== -1) {
            console.log("hat Name")
        }
        if (a.innerHTML.indexOf("Telefon") !== -1) {
            console.log("hat Telefon")
        }

    })
}

let start = function (array) {
    array.forEach(async function (el, i) {
        await iframesErstellen(el, i, findeURL(el))
        await findeTelefon(el)
        await findeIframeDOM(i)
    })
}

let device = document.location.host

let homepageAnzeigen = ".media-body.nw-desc"
let mobileAnzeigen = ".search-result-entry"

let findeAnzeigen = (querySelector) => {
    let anzeigen = document.querySelectorAll(querySelector)
    let array = Array.from(anzeigen)
    console.log(array)
    if (array.length > 0) {
        start(array)
        return
    } else {
        console.log("keine Anzeigen gefunden")
        return
    }
}

if (device === 'mobile.willhaben.at') {
    console.log("mobile Seite")
    findeAnzeigen(mobileAnzeigen)
} else {
    console.log("desktop Seite")
    findeAnzeigen(homepageAnzeigen)
}



let buttonErstellen = (el) => {
    let button = document.createElement("input")
    button.type = "button"
    button.value = "A"
    button.name = "willanrufen"
    button.class = "anruf-button"
    button.id = "iframe" + i + "-button"
    button.onclick = function () {
        console.log(url)
    };
    el.appendChild(button)
}

0 个答案:

没有答案