本文整理汇总了C#中AngleSharp.Dom.MutationObserver类的典型用法代码示例。如果您正苦于以下问题:C# MutationObserver类的具体用法?C# MutationObserver怎么用?C# MutationObserver使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MutationObserver类属于AngleSharp.Dom命名空间,在下文中一共展示了MutationObserver类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: MutationObserverAttrMakeSureTransientGetsRemoved
public void MutationObserverAttrMakeSureTransientGetsRemoved()
{
var document = Html("");
var testDiv = document.Body.AppendChild(document.CreateElement("div"));
var div = testDiv.AppendChild(document.CreateElement("div"));
var child = document.CreateElement("div");
div.AppendChild(child);
var i = 0;
var observer = new MutationObserver((records, obs) =>
{
Assert.AreNotEqual(2, ++i);
Assert.AreEqual(records.Count(), 1);
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = child,
AttributeName = "a",
AttributeNamespace = null
});
});
observer.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
IsObservingSubtree = true
});
div.RemoveChild(child);
child.SetAttribute("a", "A");
observer.Trigger();
var div2 = document.CreateElement("div");
var observer2 = new MutationObserver((records, obs) =>
{
Assert.LessOrEqual(++i, 3);
Assert.AreEqual(records.Count(), 1);
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = child,
AttributeName = "b",
AttributeNamespace = null
});
});
observer2.Connect(div2, new MutationObserverInit
{
IsObservingAttributes = true,
IsObservingSubtree = true,
});
div2.AppendChild(child);
child.SetAttribute("b", "B");
observer2.Trigger();
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:57,代码来源:MutationObserver.cs
示例2: MutationObserverChildlistCallback
public void MutationObserverChildlistCallback()
{
var document = Html("");
var testDiv = document.Body.AppendChild(document.CreateElement("div"));
var div = testDiv.AppendChild(document.CreateElement("div"));
var child = div.AppendChild(document.CreateElement("div"));
var grandChild = document.CreateElement("span");
var i = 0;
var observer = new MutationObserver((records, obs) =>
{
Assert.LessOrEqual(++i, 2);
Assert.AreEqual(2, records.Count());
AssertRecord(records[0], new TestMutationRecord
{
Type = "childList",
Target = div,
Removed = ToNodeList(child)
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "childList",
Target = child,
Added = ToNodeList(grandChild)
});
// The transient observers are removed before the callback is called.
child.RemoveChild(grandChild);
records = obs.Flush().ToArray();
Assert.AreEqual(0, records.Count());
});
observer.Connect(div, new MutationObserverInit
{
IsObservingChildNodes = true,
IsObservingSubtree = true
});
div.RemoveChild(child);
child.AppendChild(grandChild);
observer.Trigger();
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:42,代码来源:MutationObserver.cs
示例3: Register
public void Register(MutationObserver observer)
{
if (!_observers.Contains(observer))
{
_observers.Add(observer);
}
}
开发者ID:Wojdav,项目名称:AngleSharp,代码行数:7,代码来源:MutationHost.cs
示例4: ConnectMutationObserverAttributesTriggerManually
public void ConnectMutationObserverAttributesTriggerManually()
{
var called = false;
var attrName = "something";
var attrValue = "test";
var observer = new MutationObserver((mut, obs) =>
{
called = true;
Assert.AreEqual(1, mut.Length);
Assert.AreEqual(attrName, mut[0].AttributeName);
Assert.IsNull(mut[0].PreviousValue);
});
var document = Html("");
observer.Connect(document.Body, new MutationObserverInit
{
IsObservingAttributes = true
});
document.Body.SetAttribute(attrName, attrValue);
observer.TriggerWith(observer.Flush().ToArray());
Assert.IsTrue(called);
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:25,代码来源:MutationObserver.cs
示例5: Unregister
public void Unregister(MutationObserver observer)
{
if (_observers.Contains(observer))
{
_observers.Remove(observer);
}
}
开发者ID:Wojdav,项目名称:AngleSharp,代码行数:7,代码来源:MutationHost.cs
示例6: ConnectMutationObserverMultipleAttributesDescendentTriggerManually
public void ConnectMutationObserverMultipleAttributesDescendentTriggerManually()
{
var called1 = false;
var called2 = false;
var called3 = false;
var attrName = "something";
var attrValue = "test";
var document = Html("");
var observer1 = new MutationObserver((mut, obs) =>
{
called1 = true;
Assert.AreEqual(1, mut.Length);
});
observer1.Connect(document.DocumentElement, new MutationObserverInit
{
IsObservingAttributes = true,
IsObservingSubtree = true
});
var observer2 = new MutationObserver((mut, obs) =>
{
called2 = true;
Assert.AreEqual(0, mut.Length);
});
observer2.Connect(document.DocumentElement, new MutationObserverInit
{
IsObservingAttributes = true,
IsObservingSubtree = false
});
var observer3 = new MutationObserver((mut, obs) =>
{
called3 = true;
Assert.AreEqual(1, mut.Length);
});
observer3.Connect(document.Body, new MutationObserverInit
{
IsObservingAttributes = true
});
document.Body.SetAttribute(attrName, attrValue);
observer1.TriggerWith(observer1.Flush().ToArray());
observer2.TriggerWith(observer2.Flush().ToArray());
observer3.TriggerWith(observer3.Flush().ToArray());
Assert.IsTrue(called1);
Assert.IsTrue(called2);
Assert.IsTrue(called3);
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:53,代码来源:MutationObserver.cs
示例7: ConnectMutationObserverChildNodesTriggerManually
public void ConnectMutationObserverChildNodesTriggerManually()
{
var called = false;
var observer = new MutationObserver((mut, obs) =>
{
called = true;
Assert.AreEqual(1, mut.Length);
var record = mut[0];
Assert.IsNotNull(record.Added);
Assert.AreEqual(1, record.Added.Length);
});
var document = Html("");
observer.Connect(document.Body, childList: true);
document.Body.AppendChild(document.CreateElement("span"));
observer.TriggerWith(observer.Flush().ToArray());
Assert.IsTrue(called);
}
开发者ID:JBTech,项目名称:AngleSharp,代码行数:20,代码来源:MutationObserver.cs
示例8: MutationObserverOneObserverTwoAttributeChanges
public void MutationObserverOneObserverTwoAttributeChanges()
{
var document = Html("");
var div = document.CreateElement("div");
var observer = new MutationObserver((records, obs) =>
{
Assert.AreEqual(records.Count(), 2);
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "a",
AttributeNamespace = null
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "a",
AttributeNamespace = null
});
});
observer.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true
});
div.SetAttribute("a", "A");
div.SetAttribute("a", "B");
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:32,代码来源:MutationObserver.cs
示例9: MutationObserverNestedChanges
public void MutationObserverNestedChanges()
{
var document = Html("");
var div = document.CreateElement("div");
var fresh = true;
var observer = new MutationObserver((records, obs) =>
{
Assert.AreEqual(records.Count(), 1);
if (fresh)
{
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "a",
AttributeNamespace = null
});
div.SetAttribute("b", "B");
fresh = false;
}
else
{
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "b",
AttributeNamespace = null
});
}
});
observer.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true
});
div.SetAttribute("a", "A");
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:40,代码来源:MutationObserver.cs
示例10: MutationObserverDisconnectShouldStopAllEventsAndEmptyTheRecords
public void MutationObserverDisconnectShouldStopAllEventsAndEmptyTheRecords()
{
var document = Html("");
var div = document.CreateElement("div");
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
});
div.SetAttribute("a", "A");
observer.Disconnect();
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 0);
div.SetAttribute("b", "B");
records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 0);
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:19,代码来源:MutationObserver.cs
示例11: MutationObserverDisconnectShouldNotAffectOtherObservers
public void MutationObserverDisconnectShouldNotAffectOtherObservers()
{
var document = Html("");
var div = document.CreateElement("div");
var observer1 = new MutationObserver((obs, mut) => { });
observer1.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
});
var observer2 = new MutationObserver((obs, mut) => { });
observer2.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
});
div.SetAttribute("a", "A");
observer1.Disconnect();
var records1 = observer1.Flush().ToArray();
Assert.AreEqual(records1.Count(), 0);
var records2 = observer2.Flush().ToArray();
Assert.AreEqual(records2.Count(), 1);
AssertRecord(records2[0], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "a"
});
div.SetAttribute("b", "B");
records1 = observer1.Flush().ToArray();
Assert.AreEqual(records1.Count(), 0);
records2 = observer2.Flush().ToArray();
Assert.AreEqual(records2.Count(), 1);
AssertRecord(records2[0], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "b"
});
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:44,代码来源:MutationObserver.cs
示例12: MutationObserverChildListCharacterdata
public void MutationObserverChildListCharacterdata()
{
var document = Html("");
var div = document.CreateElement("div");
var child = div.AppendChild(document.CreateTextNode("text"));
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingCharacterData = true,
IsObservingSubtree = true
});
div.RemoveChild(child);
child.TextContent = "changed";
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 1);
AssertRecord(records[0], new TestMutationRecord
{
Type = "characterData",
Target = child
});
child.TextContent += " again";
records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 1);
AssertRecord(records[0], new TestMutationRecord
{
Type = "characterData",
Target = child
});
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:34,代码来源:MutationObserver.cs
示例13: MutationObserverObservingOnTheSameNodeShouldUpdateTheOptions
public void MutationObserverObservingOnTheSameNodeShouldUpdateTheOptions()
{
var document = Html("");
var div = document.CreateElement("div");
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
AttributeFilters = new[] { "a" }
});
observer.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
AttributeFilters = new[] { "b" }
});
div.SetAttribute("a", "A");
div.SetAttribute("b", "B");
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 1);
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "b"
});
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:29,代码来源:MutationObserver.cs
示例14: MutationObserverBothDirectAndSubtree
public void MutationObserverBothDirectAndSubtree()
{
var document = Html("");
var div = document.CreateElement("div");
var child = div.AppendChild(document.CreateElement("div"));
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingChildNodes = true,
IsObservingSubtree = true
});
observer.Connect(child, new MutationObserverInit
{
IsObservingChildNodes = true
});
var a = document.CreateTextNode("a");
var b = document.CreateTextNode("b");
child.AppendChild(a);
div.AppendChild(b);
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 2);
AssertRecord(records[0], new TestMutationRecord
{
Type = "childList",
Target = child,
Added = ToNodeList(a)
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "childList",
Target = div,
Added = ToNodeList(b),
PreviousSibling = child
});
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:40,代码来源:MutationObserver.cs
示例15: ConnectMutationObserverTextWithDescendentsAndExaminingOldValueTriggerManually
public void ConnectMutationObserverTextWithDescendentsAndExaminingOldValueTriggerManually()
{
var called = false;
var text = "something";
var replaced = "different";
var observer = new MutationObserver((mut, obs) =>
{
called = true;
Assert.AreEqual(1, mut.Length);
Assert.AreEqual(text, mut[0].PreviousValue);
var tn = mut[0].Target as TextNode;
Assert.IsNotNull(tn);
Assert.AreEqual(text + replaced, tn.TextContent);
});
var document = Html("");
observer.Connect(document.Body, new MutationObserverInit
{
IsObservingCharacterData = true,
IsObservingSubtree = true,
IsExaminingOldCharacterData = true
});
document.Body.TextContent = text;
var textNode = document.Body.ChildNodes[0] as TextNode;
textNode.Replace(text.Length, 0, replaced);
observer.TriggerWith(observer.Flush().ToArray());
Assert.IsTrue(called);
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:31,代码来源:MutationObserver.cs
示例16: MutationObserverCharacterdataChangeInSubtreeShouldNotGenerateARecord
public void MutationObserverCharacterdataChangeInSubtreeShouldNotGenerateARecord()
{
var document = Html("");
var div = document.CreateElement("div");
var text = div.AppendChild(document.CreateTextNode("abc"));
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingCharacterData = true
});
text.TextContent = "def";
text.TextContent = "ghi";
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 0);
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:16,代码来源:MutationObserver.cs
示例17: MutationObserverRemovechild
public void MutationObserverRemovechild()
{
var document = Html("");
var testDiv = document.Body.AppendChild(document.CreateElement("div"));
var div = testDiv.AppendChild(document.CreateElement("div"));
var a = div.AppendChild(document.CreateElement("a"));
var b = div.AppendChild(document.CreateElement("b"));
var c = div.AppendChild(document.CreateElement("c"));
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingChildNodes = true
});
div.RemoveChild(b);
div.RemoveChild(a);
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 2);
AssertRecord(records[0], new TestMutationRecord
{
Type = "childList",
Target = div,
Removed = ToNodeList(b),
NextSibling = c,
PreviousSibling = a
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "childList",
Target = div,
Removed = ToNodeList(a),
NextSibling = c
});
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:38,代码来源:MutationObserver.cs
示例18: MutationObserverAttrWithOldvalue
public void MutationObserverAttrWithOldvalue()
{
var document = Html("");
var div = document.CreateElement("div");
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
IsExaminingOldAttributeValue = true
});
div.SetAttribute("a", "A");
div.SetAttribute("a", "B");
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 2);
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "a",
AttributeNamespace = null,
PreviousValue = null
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "a",
AttributeNamespace = null,
PreviousValue = "A"
});
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:34,代码来源:MutationObserver.cs
示例19: ConnectMutationObserverTextNoDescendentsButCreatedTriggerManually
public void ConnectMutationObserverTextNoDescendentsButCreatedTriggerManually()
{
var called = false;
var text = "something";
var observer = new MutationObserver((mut, obs) =>
{
called = true;
Assert.AreEqual(1, mut.Length);
Assert.AreEqual(1, mut[0].Added.Length);
Assert.AreEqual(text, mut[0].Added[0].TextContent);
});
var document = Html("");
observer.Connect(document.Body, new MutationObserverInit
{
IsObservingSubtree = false,
IsObservingChildNodes = true
});
document.Body.TextContent = text;
observer.TriggerWith(observer.Flush().ToArray());
Assert.IsTrue(called);
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:25,代码来源:MutationObserver.cs
示例20: ConnectMutationObserverTextNoDescendentsTriggerManually
public void ConnectMutationObserverTextNoDescendentsTriggerManually()
{
var called = false;
var text = "something";
var replaced = "different";
var observer = new MutationObserver((mut, obs) =>
{
called = true;
Assert.AreEqual(0, mut.Length);
});
var document = Html("");
observer.Connect(document.Body, new MutationObserverInit
{
IsObservingCharacterData = true,
IsObservingSubtree = false
});
document.Body.TextContent = text;
var textNode = document.Body.ChildNodes[0] as TextNode;
textNode.Replace(text.Length, 0, replaced);
observer.TriggerWith(observer.Flush().ToArray());
Assert.IsTrue(called);
}
开发者ID:JackieyLi,项目名称:AngleSharp,代码行数:26,代码来源:MutationObserver.cs
注:本文中的AngleSharp.Dom.MutationObserver类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论