This commit completes Phase 3 (Event System) and includes a thorough midpoint review that identified and fixed critical gaps from earlier phases. Major accomplishments: • Complete event system with addEventListener/removeEventListener API • Event dispatch system with preventDefault/stopPropagation support • Click event integration with w3m's existing mouse handling system • Enhanced document.write() from stub to functional implementation • Fixed critical anchor-DOM integration gap from Phase 2 • Comprehensive code review and stub elimination • Full DOM element extraction and JavaScript object conversion • Working noscript tag suppression when JavaScript is enabled Testing verified: • JavaScript execution and DOM manipulation working correctly • document.write() creates DOM elements and displays content properly • noscript content correctly hidden when JavaScript is enabled • Click events integrate properly with w3m's mouse system • No compilation errors or warnings (except minor unused variable) Phase status: Phases 1-3 now complete and fully functional. Remaining stubs are safe and won't cause unexpected behavior. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
44 lines
1.3 KiB
HTML
44 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>W3M JavaScript Test</title>
|
|
</head>
|
|
<body>
|
|
<h1>W3M JavaScript Integration Test</h1>
|
|
|
|
<p id="test-para">This paragraph should be modified by JavaScript.</p>
|
|
|
|
<div id="test-div">
|
|
<a href="https://example.com" id="test-link">Click me for event test</a>
|
|
</div>
|
|
|
|
<script>
|
|
// Test 1: Basic JavaScript execution
|
|
console.log("JavaScript is running in w3m!");
|
|
|
|
// Test 2: DOM access
|
|
var para = document.getElementById('test-para');
|
|
if (para) {
|
|
para.textContent = "JavaScript successfully modified this text!";
|
|
}
|
|
|
|
// Test 3: Event listener test
|
|
var link = document.getElementById('test-link');
|
|
if (link) {
|
|
link.addEventListener('click', function(event) {
|
|
alert('JavaScript click event fired!');
|
|
event.preventDefault(); // Should prevent navigation
|
|
});
|
|
}
|
|
|
|
// Test 4: Create new elements
|
|
var newDiv = document.createElement('div');
|
|
newDiv.textContent = 'This div was created by JavaScript';
|
|
document.body.appendChild(newDiv);
|
|
</script>
|
|
|
|
<noscript>
|
|
<p style="color: red;">JavaScript is disabled or not working.</p>
|
|
</noscript>
|
|
</body>
|
|
</html> |