3

onpropertychangeJavaScriptを使用してFirefoxでテキストボックスのを処理するにはどうすればよいですか?

以下に例を示します。

var headerBGColorTextBox = document.getElementById('<%= tbHeaderBGColor.ClientID %>');

if (headerBGColorTextBox != null) {
  headerBGColorTextBox.pluggedElement = document.getElementById('<%= trHeaderBG.ClientID %>');
  headerBGColorTextBox.onpropertychange = function() {
    alert('function called');
    if (event.propertyName == 'style.backgroundColor' && event.srcElement.pluggedElement != null)
      alert(event.propertyName);
    event.srcElement.pluggedElement.style.backgroundColor = event.srcElement.style.backgroundColor;
  };
}
4

4 に答える 4

5

onpropertychange イベントを模倣する方法は 2 つあります。上記の Mutation イベントは最新のブラウザーで同じように機能し、「object.watch」非標準メソッドは FF < 3 の古いバージョンのサポートを提供します。

MDC のドキュメントを参照してください。

オブジェクト.ウォッチ

突然変異イベント

于 2009-05-28T06:36:23.170 に答える
4

onpropertychangeイベントが IE 固有のものであるかのように見えます: http://www.aptana.com/reference/html/api/HTML.event.onpropertychange.html

ただし、そうは言っても、Firefox、少なくとも 3.0.10 は「DOMAttrModified」というイベントをサポートしています。以下は、それがどのように機能するかのスニペットです。

document.body.addEventListener("DOMAttrModified", function () { console.log ("Args: %o", arguments); }, false);
document.body.id = "Testing";

console.logFirefox 拡張機能Firebugがインストールされていると仮定すると、 はどこにありますか。

于 2009-05-28T06:30:04.337 に答える
2

onpropertychange非標準です。http://msdn.microsoft.com/en-us/library/ms536956を参照してください。

于 2009-05-28T06:20:55.490 に答える
1

次のコードが機能します。

var foo = '<%= tbHeaderBGColor.ClientID %>';

function changetext() 
  {
  alert('function called');
  if (event.propertyName == 'style.backgroundColor' && event.srcElement.pluggedElement != null)
    alert(event.propertyName);

  event.srcElement.pluggedElement.style.backgroundColor = event.srcElement.style.backgroundColor;
  }

if (!!document.addEventListener)
  {
  document.getElementById(foo).addEventListener("DOMAttrModified", changetext, false);
  }
else
  {
  document.getElementById(foo).addBehavior("foo.htc");
  document.getElementById(foo).attachEvent("onpropertychange", changetext);
  }

DOM 変異イベント

于 2012-01-05T02:14:01.703 に答える