我们有一个Xamarin MacOs应用程序,它使用web视图来显示web内容。
显示的第一个页面是本地html页面文本。该页面有一个iframe,指向一个允许像vimeo一样嵌入的外部网络。
如果该iframe具有类型为"0"的输入;文本";并尝试在其中写入,不会触发keypress/keydown,然后不会在输入内部写入文本。
已扩展WebKit.WebView以访问本机属性,但未找到任何允许此操作的首选项。
Xamarin Forms使用的版本为5.0.0.2196
对于这种奇怪的情况,有什么变通办法吗?Tx
更新1
如果按下键";控制+选项卡";,则输入开始接收输入键。所以,问题是iframe中的控件有焦点,但webview中的iframe没有。
您需要检测iframe中的任何keyup事件。这是HTML
&下面的JS
代码片段供您参考:
HTML:
<iframe id='this-iframe'></iframe>
JS:
var iframe_content = '<html><body><input type="text" id="input_id"/><span id="result"></span></body></html>';
var doc = document.getElementById('this-iframe').contentWindow.document;
doc.open();
doc.write(iframe_content);
doc.close();
$(document.getElementById('this-iframe').contentWindow.document).keyup(function(e){
if($('#this-iframe').contents().find('#input_id').is(":focus")){
$('#this-iframe').contents().find("#result").html($('#this-iframe').contents().find('#input_id').val());
}
});