İçeriğe atla

Kartographer Reparse Test: Revizyonlar arasındaki fark

aq.si Wiki sitesinden
[kontrol edilmemiş revizyon][kontrol edilmemiş revizyon]
TestAdmin (mesaj | katkılar)
"== Kartographer innerHTML Re-Parse Test == This page demonstrates phab:T401606: nested <code><a></code> inside the mapframe container breaks when the HTML is re-parsed (e.g. by Vue's <code>v-html</code>). <mapframe width="300" height="200" zoom="13" latitude="41.353" longitude="41.31"> { "type": "Feature", "geometry": { "type": "Point", "coordinates": [41.31, 41.353] }, "properties": { "marker-symbol": "marker", "marker-size": "large", "marke..." içeriğiyle yeni sayfa oluşturdu
 
TestAdmin (mesaj | katkılar)
Değişiklik özeti yok
 
1. satır: 1. satır:
== Kartographer innerHTML Re-Parse Test ==
== Kartographer innerHTML Re-Parse Test ==


This page demonstrates [[phab:T401606]]: nested <code><a></code> inside the mapframe container breaks when the HTML is re-parsed (e.g. by Vue's <code>v-html</code>).
This page demonstrates [[phab:T401606]]: the <code><a></code> map container breaks when re-parsed via <code>innerHTML</code>.


<mapframe width="300" height="200" zoom="13" latitude="41.353" longitude="41.31">
<mapframe width="300" height="200" zoom="13" latitude="41.353" longitude="41.31">
15. satır: 15. satır:
</mapframe>
</mapframe>


=== How to test ===
=== Test ===
# Wait for the map to fully load (you should see Arhavi with a blue marker)
Wait for the map to load, then tap the button:
# Open browser console (F12)
 
# Run: <code>var m=document.querySelector('.mw-kartographer-map'), p=m.parentElement; console.log('BEFORE:', m.querySelectorAll('a').length, 'anchors'); p.innerHTML=p.innerHTML; var m2=p.querySelector('.mw-kartographer-map'); console.log('AFTER:', m2?m2.querySelectorAll('a').length:'GONE', 'anchors');</code>
<div id="test-btn" style="margin:15px 0; padding:12px 20px; background:#d33; color:white; border-radius:8px; text-align:center; font-size:16px; cursor:pointer; -webkit-tap-highlight-color:rgba(0,0,0,0.1);">TAP: Simulate innerHTML re-parse</div>
# The map will break apart — tiles, zoom controls, and attribution will be ejected from the container
<pre id="log" style="background:#f8f8f8; padding:10px; border:1px solid #ccc; font-size:13px; white-space:pre-wrap;">Waiting for test...</pre>
 
<templatestyles src="Kartographer Reparse Test/styles.css" />
 
{{#tag:script|
var btn = document.getElementById("test-btn");
var log = document.getElementById("log");
if (btn) btn.onclick = function() {
  var map = document.querySelector(".mw-kartographer-map");
  if (!map) { log.textContent = "No map found"; return; }
  var p = map.parentElement;
  var ba = map.querySelectorAll("a").length;
  var bc = map.children.length;
  var bt = map.tagName;
  log.textContent = "BEFORE: tag=" + bt + ", " + ba + " inner <a>, " + bc + " children\n";
  p.innerHTML = p.innerHTML;
  var m2 = p.querySelector(".mw-kartographer-map");
  if (!m2) { log.textContent += "AFTER: Map container GONE!"; return; }
  log.textContent += "AFTER: tag=" + m2.tagName + ", " + m2.querySelectorAll("a").length + " inner <a>, " + m2.children.length + " children\n\n";
  log.textContent += (m2.querySelectorAll("a").length < ba) ? "RESULT: MAP BROKEN!" : "RESULT: OK";
};
}}

15.35, 8 Temmuz 2026 itibarı ile sayfanın şu anki hâli

Kartographer innerHTML Re-Parse Test

This page demonstrates phab:T401606: the <a> map container breaks when re-parsed via innerHTML.

Harita

Test

Wait for the map to load, then tap the button:

TAP: Simulate innerHTML re-parse
Waiting for test...

<templatestyles src="Kartographer Reparse Test/styles.css" />

<script> var btn = document.getElementById("test-btn"); var log = document.getElementById("log"); if (btn) btn.onclick = function() {

 var map = document.querySelector(".mw-kartographer-map");
 if (!map) { log.textContent = "No map found"; return; }
 var p = map.parentElement;
 var ba = map.querySelectorAll("a").length;
 var bc = map.children.length;
 var bt = map.tagName;
 log.textContent = "BEFORE: tag=" + bt + ", " + ba + " inner <a>, " + bc + " children\n";
 p.innerHTML = p.innerHTML;
 var m2 = p.querySelector(".mw-kartographer-map");
 if (!m2) { log.textContent += "AFTER: Map container GONE!"; return; }
 log.textContent += "AFTER:  tag=" + m2.tagName + ", " + m2.querySelectorAll("a").length + " inner <a>, " + m2.children.length + " children\n\n";
 log.textContent += (m2.querySelectorAll("a").length < ba) ? "RESULT: MAP BROKEN!" : "RESULT: OK";

}; </script>