标签: opera

模仿窗口.使用javascript在Opera中的错误

我目前正在开发一个Web应用程序,我有一个JS日志记录机制,处理未被页面内的js代码捕获的Javascript错误.我使用window.onerror来捕获所有这些错误并将其他地方记录在哪里.

但问题是Opera没有window.onerror事件.我能想到的一种方法是,对所有js函数进行字符串处理,然后在body加载后在这些函数中插入try catch块.但它在许多情况下不起作用,但是,它至少在某种程度上起作用.

我确信这种方法很糟糕,但是,我想不出更好的方法.请指教.

更新:现在,我正在调用下面的代码尽可能多地捕获错误.

function OnBodyLoad()
{
        var allElements = document.getElementsByTagName("*");
        for(var cnt = 0;cnt < allElements.length;cnt++)
        {
            RegisterAllEvents(allElements[cnt]);
        }
}
function RegisterAllEvents(objToProcess){
    for(var cnt = 0;cnt < objToProcess.attributes.length;cnt++){
        if(IsAttributeAnEvent(objToProcess.attributes[cnt].name))
        {
            objToProcess.attributes[cnt].value =  'try{'+objToProcess.attributes[cnt].value+'}catch(err){LogError("'+ objToProcess.id+'"'+ ',err);}';
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript opera

8
推荐指数
3
解决办法
7874
查看次数

为什么在Opera中使用更大的字体大小呈现文本?

我正在开发一个需要或多或少像素完美的HTML页面,我注意到在Opera 10中,字体比其他浏览器渲染得更大,即使字体大小实际上是相同的.

请参阅Opera 10中的此示例页面以及Firefox 3.6等其他浏览器:

http://troy.onespot.com/static/stack_overflow/opera_font_size.html

或者,这是一个说明问题的屏幕截图:

http://skitch.com/troywarr/d47m1/font-size

"50px"和"46px"文本背后的红色框(两者都具有相应的字体大小)都具有50px的高度.

在Firefox 3.6中,"50px"中"p"的下行与其后面的红色框的底部对齐.在Opera中,"50px"中"p"的下降位于下方; 它是"46px",更接近Firefox中的"50px".这告诉我,Opera在10%的范围内渲染字体太大了.

这与其他正文的问题完全相同,在Opera 10中完全抛弃了我的页面布局.如果您对可能导致此问题的原因有任何想法,或者至少如何预防/修复它,请告诉我.

谢谢!


更新:

似乎我没有安装Helvetica的正确副本 - 我从字体堆栈中删除了它,并且在我的测试页面上看到的渲染文本没有区别.

我更新了测试页面只使用通用的"sans-serif"字体系列,所以希望我们现在都看到同样的事情.

有趣的是,使用通用的"serif"字体在Opera和Firefox中显示完全相同.

这个问题可能只是一个关于Opera如何显示通用"sans-serif"字体的怪癖?


更新2:

这可能很重要:我使用的是Mac OS X Snow Leopard.我现在正在尝试其他字体,看看我是否可以进一步隔离这个问题.


更新3:

我使用Arial创建了另一个测试页面:

http://troy.onespot.com/static/stack_overflow/opera_font_size_reset_arial.html

现在Opera和Firefox几乎完全匹配!

在这个项目中,我可能会使用Arial代替Helvetica.据我所知,我有一个完整的OS X版本的Helvetica - 所以我不能在不同的用户看到我的页面上的字体之间有任何差异.我会坚持使用久经考验的Arial.

但是,这意味着什么呢?OS X的默认sans-serif字体只是在Opera中呈现奇怪的东西?

html css opera font-size

8
推荐指数
2
解决办法
4919
查看次数

单击输入字段内部时如何删除/更改边框?

在此站点的搜索框内单击,您将看到我的意思.有没有办法删除它?另外,如果我决定保留它,我该如何改变它的尺寸?

谢谢,克里斯

css firefox opera google-chrome

8
推荐指数
2
解决办法
3万
查看次数

Opera忽略.live()事件处理程序

我有以下jQuery适用于 Opera 之外的所有主流浏览器:

jQuery(document).ready(function () {

      jQuery("#GetResults").live("click", function(e){
            e.preventDefault(); //Opera doesn't execute anything here
      });

};
Run Code Online (Sandbox Code Playgroud)

单击以下链接时应该触发:

<a id="GetResults" href="Folder/File/javascript:void(0);">Get Results</a>
Run Code Online (Sandbox Code Playgroud)

只有Opera忽略了这个.有任何想法吗?

编辑:

我刚刚发现如果我用.bind()代替.live(),一切都按预期运行.我找不到任何与Opera中的.live()错误相关的文档,它确实在jsFiddle 中工作,它指向环境的东西.可能导致这种行为的原因是什么?

javascript jquery opera

8
推荐指数
3
解决办法
831
查看次数

为什么Opera在部分标记文本时会抛出单击事件?

给出以下HTML:

<div contenteditable="true">Some text</div>
Run Code Online (Sandbox Code Playgroud)

还有一些用JQuery检测click事件的JS:

$("div").click(function() {
   alert('click!');
});
Run Code Online (Sandbox Code Playgroud)

如果您选择div中文本的一部分,Opera 将不会抛出click事件(在Linux上使用Opera 11.61和在Windows上使用11.62进行测试).双击一个单词以对其进行部分标记确实有效.

本次活动在IE7-9,火狐,Chrome和Safari抛出.这里有一个稍微修改过的JSFiddle.

这是预期的行为,JQuery错误,Opera错误还是其他什么?

jquery html5 opera jquery-click-event

8
推荐指数
1
解决办法
1552
查看次数

min-height:自动在Opera中不起作用

我注意到它min-height在Opera中不起作用.我正在尝试这样的事情:

<div class="content"><div>
<div class="content newstyle"><div>
Run Code Online (Sandbox Code Playgroud)

我的CSS代码是:

.content {
    min-height: 600px;
}
.newstyle {
    min-height: auto;
}
Run Code Online (Sandbox Code Playgroud)

歌剧就像min-height不存在一样.
如果我应用任何其他风格.newstyle,如背景或其他,那么它运作良好.但min-height: auto似乎没有工作......

任何的想法?

css opera

8
推荐指数
2
解决办法
8881
查看次数

适用于Android的远程调试Opera

我正在尝试远程调试Opera for Android.我已经安装了Android SDK,在手机上检查了远程调试,在我的电脑上安装了Chrome,Android 4.3,并且已经成功地能够在Chrome和Firefox中进行远程调试.我按照Android远程调试Opera的说明进行操作,它说:

将桌面连接到设备

启动Opera for Android,并通过在地址栏中输入opera:debug并选中结果页面中的"启用"复选框来启用调试,如下所示.

当我输入地址时,我没有得到结果复选框,但只有消息"此网页不可用Chrome页面上的网页://调试/可能暂时关闭......等..."地址栏显示: opera://debug/

我有最新版本的Opera(35).有任何想法吗?

debugging opera android

8
推荐指数
0
解决办法
782
查看次数

选择边框颜色

我似乎无法摆脱浏览器中select元素的边框(轮廓,框阴影?)Opera.

以下规则均未删除边框:

select {
  /*border: 0;*/
  border: none;
  outline: 0;
  background: transparent;
  border-image: none;
  outline-offset: -2px;
  border-color: transparent;
  outline-color: transparent;
  box-shadow: none;
}
Run Code Online (Sandbox Code Playgroud)
<select class="form-control">
  <option selected="selected" value="0">Most Popular</option>
  <option value="1">A-Z</option>
  <option value="2">Z-A</option>
  <option value="3">Lowest price</option>
  <option value="4">Highest price</option>
</select>
Run Code Online (Sandbox Code Playgroud)

Opera 版本是46.0.2597.57(PGO).

以上代码在其他测试的浏览器中运行良好 - Chrome,Firefox,Internet Explorer和Edge.

任何提示都会有所帮助.

编辑我使用的是Windows 10 64位,这是一个截图:

html css opera html-select

8
推荐指数
2
解决办法
8079
查看次数

跨浏览器Onunload和Onbeforeunload?(特别是歌剧11)

我有一个表单,我必须注意用户在退出页面上有alert(),而表格中有数据尚未发送.

我读过歌剧有很多问题.Opera 11也就是说,因为我只需考虑最后一个版本.

因此,警报应该在刷新,关闭选项卡或关闭整个浏览器时显示.将事件直接设置到<form>将在任何导致破坏此元素的任何内容上启动的元素将是很好的.

javascript forms opera cross-browser onunload

7
推荐指数
1
解决办法
8186
查看次数

Opera Mobile Emulator for Windows不再可用?

我希望在这篇文章中落实这一建议:

Visual Studio 2012移动设备仿真器

但Opera Mobile Emulator似乎不再是Windows版本.有其他人遇到过这个问题吗?

windows opera emulation

7
推荐指数
1
解决办法
1852
查看次数