I can’t get your prototype function to run, but you have the layer named differently 'erh_m_layer_x' and 'erh_m_layer'.
This returns the m_layer.pageItems length as 1
main();
function main() {
var doc = app.activeDocument;
var ln = "erh_m_layer_x"
var layer, tf;
try {
layer = doc.layers.add({ name: ln, layerColor: UIColors.GRAY });
} catch (e) {
layer = doc.layers.itemByName(ln);
}
try {
tf = doc.pages.lastItem().textFrames.add();
tf.geometricBounds = [10,10,100,100];
tf.name = 'TF_1';
} catch (e) {
}
originVisibility(ln)
}
function originVisibility(n){
var m_layer = app.activeDocument.layers.itemByName(n);
//Both return 1
$.writeln("All page Items: "+ m_layer.allPageItems.length)
$.writeln("Page Items: "+ m_layer.pageItems.length)
var l = app.activeDocument.masterSpreads.everyItem().pageItems.everyItem().getElements()
//~ filter(function(pi){
//~ return pi.itemLayer == m_layer;
//~ })
//~ forEach(function(pi){
//~ try {
//~ pi = resolve(pi.extractLabel('orig'));
//~ pi && pi.isValid && pi.visible = true;
//~ } catch(e) {
//~ tracelog('originVisibility: ***ERROR*** ' + e, $.line);
//~ }
//~ })
}
Thank you for your time!
The modified layer name in the example I used intentionally, since the test script was used at one time with the main one.
I have made another small script that will be launched as a startup script, perhaps something will appear in this version.
#target indesign
#targetengine testlayers
function TestLayers() {
const LAYER_NAME = 'erh_w_test';
this.getUniqueName = (function layerNumber() {
var ctr = -1;
return function(){
return LAYER_NAME + (++ctr);
}
})();
this.createLayer = function() {
var that = this;
var ret = app.activeDocument.layers.add({ name: that.getUniqueName() });
app.activeDocument.activeLayer = ret;
return ret;
}
this.createTextFrame = function() {
return app.activeDocument.pages.lastItem().textFrames.add({geometricBounds: [10,10,100,100] });
}
}
app.documents.add();
var tl = new TestLayers();
tl.createLayer();
var tf = tl.createTextFrame();
var nlayer = tl.createLayer();
var ntf = tf.duplicate(tf.parentPage, [5, 5]);
ntf.itemLayer = nlayer;
alert(nlayer.pageItems.length);
It works... This is a brief option, you will have to complicate. I will look for the cause ...