It seems that the issue lies in how you are handling the resolution uniform in your code. The problem arises from only setting values for the resolution uniform in the onWindowResize function:
uniforms.resolution.value.x = window.innerWidth;
uniforms.resolution.value.y = window.innerHeight;
When you initialize the uniform in the createContent() function by assigning it a new vector (new THREE.Vector2()), it defaults to coordinates (0,0). This leads to division by 0 operations in your shader code, causing rendering issues when the screen is displayed.
To resolve this, consider also setting the coordinates for the resolution uniform when declaring it in the javascript code like so (within the createContent() function):
var initialResolution = new THREE.Vector2(window.innerWidth,window.innerHeight);
uniforms = {time: {type: "f", value: 1.0},
mouseX: {type: "f", value: 0.0},
mouseY: {type: "f", value: 0.0},
resolution: {type: "v2", value: initialResolution}
[...]
}