在刷新之前无法在webview中加载javascript

unable to load javascript in webview until refreshed

本文关键字:加载 javascript webview 刷新      更新时间:2023-09-26

我有一个名为room.html的html文件。erb有一些js代码。当我点击一个链接,它必须加载上面的页面。但页面是正确加载除了js代码。当我刷新时,它工作得很好。

room.html.erb
<script src="http://static.opentok.com/v2/js/opentok.min.js" type="text/javascript"></script>
<script>
var apiKey = xxxxxx;//my apikey
var sessionId ="<%=@group.sessionId%>" ;
var token = "<%=@opentok_token%>";
var session;
OT.setLogLevel(OT.DEBUG);
session = OT.initSession(apiKey,sessionId);
session.on
({
    streamCreated: function(event)
    {
        session.subscribe(event.stream,'subscribersDiv',{insertMode: 'append'});
    }
});
session.connect(token,function(error){
    if(error)
    {
        console.log(error.message);
    }
    else{
        session.publish('myPublisherDiv',{width: 320,height: 240});
    }
}); 
</script>

我不明白为什么会这样

等待DOM加载完成?

<script src="http://static.opentok.com/v2/js/opentok.min.js" type="text/javascript"></script>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function(event) { 
    var apiKey = xxxxxx;//my apikey
    var sessionId ="<%=@group.sessionId%>" ;
    var token = "<%=@opentok_token%>";
    var session;
    OT.setLogLevel(OT.DEBUG);
    session = OT.initSession(apiKey,sessionId);
    session.on
    ({
        streamCreated: function(event)
        {
            session.subscribe(event.stream,'subscribersDiv',{insertMode: 'append'});
        }
    });
    session.connect(token,function(error){
        if(error)
        {
            console.log(error.message);
        }
        else{
            session.publish('myPublisherDiv',{width: 320,height: 240});
        }
    }); 
});
</script>

另一种方法

添加
<div id="myPublisherDiv"></div>
<div id="subscribersDiv"></div>