本文整理汇总了C#中AngleSharp.Dom.MutationObserver.Flush方法的典型用法代码示例。如果您正苦于以下问题:C# MutationObserver.Flush方法的具体用法?C# MutationObserver.Flush怎么用?C# MutationObserver.Flush使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AngleSharp.Dom.MutationObserver
的用法示例。
在下文中一共展示了MutationObserver.Flush方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: 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);
}
示例2: 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);
}
示例3: MutationObserverMultipleObserversOnSameTarget
public void MutationObserverMultipleObserversOnSameTarget()
{
var document = Html("");
var div = document.CreateElement("div");
var observer1 = new MutationObserver((obs, mut) => { });
observer1.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
IsExaminingOldAttributeValue = true
});
var observer2 = new MutationObserver((obs, mut) => { });
observer2.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
AttributeFilters = new[] { "b" }
});
div.SetAttribute("a", "A");
div.SetAttribute("a", "A2");
div.SetAttribute("b", "B");
var records = observer1.Flush().ToArray();
Assert.AreEqual(records.Count(), 3);
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "a"
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "a",
PreviousValue = "A"
});
AssertRecord(records[2], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "b"
});
records = observer2.Flush().ToArray();
Assert.AreEqual(1, records.Count());
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "b"
});
}
示例4: MutationObserverAttr
public void MutationObserverAttr()
{
var document = Html("");
var div = document.CreateElement("div");
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, attributes: 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
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "a",
AttributeNamespace = null
});
}
示例5: MutationObserverAttrChangeSubtree
public void MutationObserverAttrChangeSubtree()
{
var document = Html("");
var div = document.CreateElement("div");
var child = document.CreateElement("div");
div.AppendChild(child);
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
IsObservingSubtree = true
});
child.SetAttribute("a", "A");
child.SetAttribute("a", "B");
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 2);
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = child,
AttributeName = "a"
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "attributes",
Target = child,
AttributeName = "a"
});
}
示例6: MutationObserverCharacterdataChangeInSubtree
public void MutationObserverCharacterdataChangeInSubtree()
{
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,
IsObservingSubtree = true
});
text.TextContent = "def";
text.TextContent = "ghi";
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 2);
AssertRecord(records[0], new TestMutationRecord
{
Type = "characterData",
Target = text
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "characterData",
Target = text
});
}
示例7: MutationObserverSubtree
public void MutationObserverSubtree()
{
var document = Html("");
var div = document.CreateElement("div");
var child = div.AppendChild(document.CreateElement("div"));
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(child, new MutationObserverInit
{
IsObservingChildNodes = true
});
var a = document.CreateTextNode("a");
var b = document.CreateTextNode("b");
child.AppendChild(a);
child.InsertBefore(b, a);
child.RemoveChild(b);
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 3);
AssertRecord(records[0], new TestMutationRecord
{
Type = "childList",
Target = child,
Added = ToNodeList(a)
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "childList",
Target = child,
NextSibling = a,
Added = ToNodeList(b)
});
AssertRecord(records[2], new TestMutationRecord
{
Type = "childList",
Target = child,
NextSibling = a,
Removed = ToNodeList(b)
});
}
示例8: MutationObserverInsertBefore
public void MutationObserverInsertBefore()
{
var document = Html("");
var div = document.CreateElement("div");
var a = document.CreateElement("a");
var b = document.CreateElement("b");
var c = document.CreateElement("c");
div.AppendChild(a);
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, childList: true);
div.InsertBefore(b, a);
div.InsertBefore(c, a);
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 2);
AssertRecord(records[0], new TestMutationRecord
{
Type = "childList",
Target = div,
Added = ToNodeList(b),
NextSibling = a
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "childList",
Target = div,
Added = ToNodeList(c),
NextSibling = a,
PreviousSibling = b
});
}
示例9: 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);
}
示例10: 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
});
}
示例11: 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"
});
}
示例12: MutationObserverReplaceAllChildrenUsingInnerhtml
public void MutationObserverReplaceAllChildrenUsingInnerhtml()
{
var document = Html("");
var testDiv = document.Body.AppendChild(document.CreateElement("div"));
var div = document.CreateElement("div");
testDiv.AppendChild(div);
var a = div.AppendChild(document.CreateTextNode("a"));
var b = div.AppendChild(document.CreateTextNode("b"));
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingChildNodes = true
});
div.InnerHtml = "<c></c><d></d>";
var c = div.FirstChild;
var d = div.LastChild;
var records = observer.Flush().ToArray();
var merged = MergeRecords(records);
AssertArrayEqual(merged.Item1, ToNodeList(c, d));
AssertArrayEqual(merged.Item2, ToNodeList(a, b));
AssertAll(records, new TestMutationRecord
{
Type = "childList",
Target = div
});
}
示例13: MutationObserverAttrAndCharacterdata
public void MutationObserverAttrAndCharacterdata()
{
var document = Html("");
var div = document.CreateElement("div");
var text = div.AppendChild(document.CreateTextNode("text"));
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingAttributes = true,
IsObservingCharacterData = true,
IsObservingSubtree = true
});
div.SetAttribute("a", "A");
div.FirstChild.TextContent = "changed";
var records = observer.Flush().ToArray();
Assert.AreEqual(records.Count(), 2);
AssertRecord(records[0], new TestMutationRecord
{
Type = "attributes",
Target = div,
AttributeName = "a",
AttributeNamespace = null
});
AssertRecord(records[1], new TestMutationRecord
{
Type = "characterData",
Target = div.FirstChild
});
}
示例14: MutationObserverAppendMultipleAtOnceInTheMiddle
public void MutationObserverAppendMultipleAtOnceInTheMiddle()
{
var document = Html("");
var testDiv = document.Body.AppendChild(document.CreateElement("div"));
var div = document.CreateElement("div");
testDiv.AppendChild(div);
var a = div.AppendChild(document.CreateTextNode("a"));
var b = div.AppendChild(document.CreateTextNode("b"));
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, new MutationObserverInit
{
IsObservingChildNodes = true
});
var df = document.CreateDocumentFragment();
var c = df.AppendChild(document.CreateTextNode("c"));
var d = df.AppendChild(document.CreateTextNode("d"));
div.InsertBefore(df, b);
var records = observer.Flush().ToArray();
var merged = MergeRecords(records);
AssertArrayEqual(merged.Item1, ToNodeList(c, d));
AssertArrayEqual(merged.Item2, ToNodeList());
AssertAll(records, new TestMutationRecord
{
Type = "childList",
Target = div
});
}
示例15: MutationObserverRemoveAllChildren
public void MutationObserverRemoveAllChildren()
{
var document = Html("");
var testDiv = document.Body.AppendChild(document.CreateElement("div"));
var div = document.CreateElement("div");
testDiv.AppendChild(div);
var a = div.AppendChild(document.CreateTextNode("a"));
var b = div.AppendChild(document.CreateTextNode("b"));
var c = div.AppendChild(document.CreateTextNode("c"));
var observer = new MutationObserver((obs, mut) => { });
observer.Connect(div, childList: true);
div.InnerHtml = "";
var records = observer.Flush().ToArray();
var merged = MergeRecords(records);
AssertArrayEqual(merged.Item1, ToNodeList());
AssertArrayEqual(merged.Item2, ToNodeList(a, b, c));
AssertAll(records, new TestMutationRecord
{
Type = "childList",
Target = div
});
}