将CSS注入<webview> Chrome / Electron / HTML / CSS / JS

时间:2017-03-21 14:52:41

标签: javascript jquery css webview electron

谁能告诉我为什么以下不会工作?请原谅我所有这些错误

HTML

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    if (position == 0) {
        Intent i = new Intent(this,second.class);
        startActivity(i);
    } else if (position == 1) {
        Intent i1 = new Intent(this,second.class);
        startActivity(i);
    }
}

我试图获取它,以便一旦webview中的内容加载后,背景就会通过CSS更改为红色。对任何替代方案开放或帮助解决上述原因无法解决的问题。

感谢

2 个答案:

答案 0 :(得分:3)

它适用于我使用以下设置,基本上只是电子quick start

electron index.js

运行

Result

index.js

const { app, BrowserWindow } = require('electron')
const path = require('path')
const url = require('url')

let win

function createWindow() {
    win = new BrowserWindow({ width: 800, height: 600 })

    win.loadURL(url.format({
        pathname: path.join(__dirname, 'index.html'),
        protocol: 'file:',
        slashes: true
    }))

    win.webContents.openDevTools()

    win.on('closed', () => {
        win = null
    })
}

app.on('ready', createWindow)

app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') {
        app.quit()
    }
})

app.on('activate', () => {
    if (win === null) {
        createWindow()
    }
})

的index.html

<webview id="wv1" src="https://www.github.com/" style="display:inline-flex; width:100%; height:140px" nodeintegration></webview>

<script>
    var webview = document.getElementById('wv1');
    webview.addEventListener('dom-ready', function () {
        webview.insertCSS('html,body{ background-color: #FF0000 !important;}')
    });

</script>

答案 1 :(得分:1)

为了确保你可能想要使用而不是dom-ready DOMContentLoaded而不是insertCss,insertRule。

var webview = document.getElementById('wv1');

webview.addEventListener('DOMContentLoaded', function() {
   webview.insertRule('html,body{ background-color: #FF0000 !important;}',1)
 });

但是,如果它不起作用,您可能想尝试

webview.querySelector(body) !== null

在函数内部。

希望它有效。