小编Tim*_*own的帖子

通过javascript/jQuery检测IE中的箭头按键

我正在尝试设置一个可以通过箭头键导航的菜单.我在Firefox中有这个工作片.

试图让它在IE8中工作并经过一番努力后,发现这是因为IE8不会在箭头上注册一个按键.去测试:

$(document).keypress(function (eh){ 
    alert(eh.keyCode);
};
Run Code Online (Sandbox Code Playgroud)

在Firefox中,按任意箭头键将触发37,38,39或40的警报.

在IE8中,什么都没有.标准QWERTY键盘上的任何其他键都会注册,但不会注册箭头键.

这是我的Javascript的问题吗?浏览器设置?Windows设置?

javascript jquery arrow-keys internet-explorer-8

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

点击时Jquery更改图像

我目前正在构建完整的背景图像布局,我想根据用户访问的页面更改图像.为了达到目的:当用户点击链接时,我需要更改图像属性.这是我得到了多远:

$(function() {
  $('.menulink').click(function(){
    $("#bg").attr('src',"img/picture1.jpg");
  });
});
Run Code Online (Sandbox Code Playgroud)

 

    <a href="" title="Switch" class="menulink">switch me</a>
    <img src="img/picture2.jpg" id="bg" />
Run Code Online (Sandbox Code Playgroud)

谢谢,可能是简单的东西,但在我的头上!

jquery image function href

15
推荐指数
1
解决办法
11万
查看次数

使用createEvent选择另一个元素后面的文本

我有一个场景,我有一些文本,应该是用户可选择的.问题是,它上面有一个UI覆盖,这会阻止默认情况下选择文本.保持叠加层仍然能够选择文本的逻辑方法是使用合成事件(使用document.createEvent),但由于某种原因,它不能按预期工作.

事件似乎被正确委派并触发其处理程序,但未选择任何文本.我在这里有一个例子,这是对问题的粗略简化.

几点说明

  1. 在FF中,如果您在叠加层之外开始选择,您仍然可以选择所需的文本,即使它位于叠加层下方
  2. 当您在未覆盖区域中进行正常选择并单击覆盖图时,可以从委派mousedown事件中删除选择,但不会发生

我错过了一个应该委派的事件(我有mousedown,mousemovemouseup)?或者是浏览器禁用此类行为的某种安全措施(请参阅注释2)?关于如何获得所需结果的任何其他建议?我知道我应该完全解决当前的叠加解决方案,但我已经对问题本身感到好奇.

html javascript javascript-events selection event-delegation

13
推荐指数
1
解决办法
442
查看次数

防止选择在Firefox中的iframe中显示为灰色,而不使用contenteditable

在Firefox 3及更高版本(可能是旧版本)中,选择iframe中的内容似乎总是使用用于当前没有焦点的文档的灰色选择背景颜色,即使iframe确实具有焦点.我能找到的唯一例外是iframe中的内容是可编辑的.在其他浏览器中并非如此.这是一个说明这个的例子:

http://jsfiddle.net/97Vjz/

遗憾的是,这会阻止使用::-moz-selectionCSS伪元素在iframe中设置样式,因为它仅适用于非灰色选择:

http://jsfiddle.net/YYXSY/1/

我的问题是:是否可以防止iframe的选择在Firefox中变为灰色而不使用contenteditable/ designMode

UPDATE

这似乎只发生在动态编写的iframe上:使用单独的文件,该src属性解决了问题.但是,我确实需要它来处理动态编写的iframe.

javascript css iframe firefox selection

12
推荐指数
1
解决办法
1928
查看次数

在contenteditable div中替换innerHTML

我需要在contenteditable div中实现数字的突出显示(将来我添加更复杂的规则).问题是当我使用javascript替换插入新内容时,DOM更改和contenteditable div失去焦点.我需要的是保持对当前位置的重点关注div,因此用户只需键入没有任何问题,我的功能简单突出显示数字.谷歌搜索我认为Rangy库是最好的解决方案.我有以下代码:

function formatText() {

              var savedSel = rangy.saveSelection();
              el = document.getElementById('pad');
              el.innerHTML = el.innerHTML.replace(/(<([^>]+)>)/ig,"");
              el.innerHTML = el.innerHTML.replace(/([0-9])/ig,"<font color='red'>$1</font>");
              rangy.restoreSelection(savedSel);
          }

<div contenteditable="true" id="pad" onkeyup="formatText();"></div>
Run Code Online (Sandbox Code Playgroud)

问题是在函数结束工作焦点回到div之后,但是插入总是指向div开始,我可以在任何地方输入,除了div开始.还有console.log类型以下Rangy warning: Module SaveRestore: Marker element has been removed. Cannot restore selection. 请帮我实现这个功能.我打开另一个解决方案,不仅是rangy库.谢谢!

http://jsfiddle.net/2rTA5/这是jsfiddle,但是它不能正常工作(当我在我的div中输入数字时没有任何反应),不管我(第一次通过jsfiddle发布代码)或者资源不支持contenteditable.UPD*我在stackoverflow上读到类似的问题,但解决方案不适合我的情况:(

html javascript range contenteditable rangy

10
推荐指数
1
解决办法
1万
查看次数

如何使用javascript从IE中删除iframe边框

我试图通过JavaScript插入一个iframe到浏览器DOM,并希望删除边界,如果IE但似乎无法.我试过这些无济于事:

iframeElement.style.borderStyle="none";
Run Code Online (Sandbox Code Playgroud)

iframeElement.style.frameBorder = "0";
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.

javascript iframe internet-explorer border

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

在CKEditor插件中保存之前立即更新编辑器内容

我正在为CKEditor开发一个插件,需要在保存之前立即对编辑器的内容进行一些更改.在FCKeditor中,我使用该OnAfterLinkedFieldUpdate事件实现了这一点,但我还没有找到在CKEditor中执行此操作的等效方法.我原本希望有一个合适的事件可以挂钩,但似乎没有.有谁知道这样做的方法?

javascript ckeditor

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

确保内联块元素的CSS唯一方法至少与它的高度一样宽

我有一系列HTML元素display: inline-block.它们看起来像盒子.这是一个简化的例子:

.box {
  display: inline-block;
  border: solid darkblue 1px;
  padding: 5px;
  margin-right: 1em;
  text-align: center;
  background-color: lightgoldenrodyellow;
}
Run Code Online (Sandbox Code Playgroud)
<div class="box">This<br>is<br>a<br>box</div>
<div class="box">This<br>is<br>a<br>tall<br>box</div>
<div class="box">This box is wider than it is tall<br>and therefore needs no adjustment</div>
Run Code Online (Sandbox Code Playgroud)

我需要的是每个盒子至少要和它一样宽,受到以下限制:

  • 仅限CSS.没有JavaScript
  • 无法明确设置框的高度和宽度(包括最小值和最大值)
  • inline-block行为至关重要.一长串的盒子需要很好地自动包裹
  • 每个框内的内容应居中对齐

我发现了一种技术,它可以使元素至少与它的宽度一样高,但这依赖于一个百分比长度为margin或者padding相对于元素宽度的事实.似乎没有相当于制作一个至少与高一样宽的盒子.

可能吗?

html css

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

Javascript在<span>元素中获取文本

我需要获取元素内的文本.

我只能抓住这个元素的类而不是ID.

<span class="fileName">test.png</span>
Run Code Online (Sandbox Code Playgroud)

所以我需要一种方法来获取test.png,但正如你所看到的,我只有元素的类而不是ID.

请注意我们可能有更多<span class="fileName"></span>,所以它可能看起来像这样

<span class="fileName">test1.png</span>
<span class="fileName">test2.png</span>
<span class="fileName">test3.png</span>
<span class="fileName">test4.png</span>
Run Code Online (Sandbox Code Playgroud)

在我们有更多的情况下,如上面的例子,我需要获取所有值而不仅仅是一个,因为我需要将此值传递给另一个使用jQuery的页面.所以它应该能够从该元素中获得一个或多个值.

请帮忙!

而且我也不是一个JavaScript专家!

javascript jquery class

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

iframe ContentWindow

当我尝试从iframe中获取内容窗口时,使用

var contentWindow = document.getElementbyId('iframe').contentWindow 
Run Code Online (Sandbox Code Playgroud)

有时它返回"Window undefined",因为contentWindow不存在.我似乎无法使用它来检查它

if (contentWindow === unidentified) or if (contentWindow === null)
Run Code Online (Sandbox Code Playgroud)

因为如果我试图从中获取值,它只是代码中的错误.有没有其他人遇到这个问题,并找到了解决方案?

html javascript iframe html5 web

6
推荐指数
1
解决办法
2万
查看次数