Prevent script Collision
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, typescript
- Área
- frontend
Línea de trabajo
Comienza revisando el uso reportado de chrome.scripting.executeScript y las llamadas a Stacks.showModal en el issue, junto con la discusión enlazada de Stack Apps. Determina si el comportamiento solicitado de aislamiento de scripts o prevención de colisiones es viable dentro de Stacks; para darlo por terminado se requiere un alcance acordado y un enfoque documentado y funcional que no rompa el comportamiento existente de la página.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Is your feature request related to a problem? Please describe.
Yes, I am developing an extension to be used on SE websites and I was thinking of using the existing methods, but there is a privacy policy problem.
so the other way is to implement the following:
chrome.scripting.executeScript({
target: { tabId: tabId, allFrames: true },
files: ['src/js/stacks.min.js'],
});
the problem is that when it is executed overwrites some events: such as the filtering of posts.
Describe the solution you'd like
I thought that Stack could offer some kind of implementation to support the extensions that implement it; or avoid the script collision with it, through some method like jquery does:
https://api.jquery.com/jquery.noconflict/
Describe alternatives you've considered
I have no alternative; I have put everything documented in this post on the stack apps site but the solutions they have offered me have not worked.
Additional context
I do not know if this topic has already been touched, or if there is a solution that I have not found yet.
in the structure of the extension this document.js that is supposed to be executed next to the user's active tab, well I have this:
let atsu_btn = `
<button
type="button"
class="s-btn js-modal-open"
id="atsu-post-comment"
data-togle="s-modal"
data-target="#atsu-modal"
style="margin-top:5px; border: 3px solid rgb(246, 178, 107); color: rgb(194, 123, 160); font-style: italic;">
Auto Com. & Help
</button>
<div data-controller="s-modal" data-s-modal-return-element="#atsu-post-comment">
<aside class="s-modal" id="atsu-modal" tabindex="-1" role="dialog" aria-labelledby="modal-title" aria-describedby="modal-description" aria-hidden="true" data-controller="s-modal" data-s-modal-target="modal" data-s-modal-return-element=".js-modal-open[data-target='#atsu-modal']" data-s-modal-remove-when-hidden="false" data-joder="1">
<div class="s-modal--dialog wmn8 hmn5" role="document">
<h1 class="s-modal--header" id="modal-title">Selection and Configuration Automatic Comments.</h1>
<div class="s-modal--body hs5" id="modal-description">
<nav>
<ul class="s-navigation" role="tablist" data-controller="s-navigation-tablist">
<li>
<button type="button"
role="tab"
id="tab-question"
aria-selected="true"
aria-controls="panel-question"
class="s-navigation--item is-selected">Comments for Questions</button>
</li>
<li>
<button type="button"
role="tab"
id="tab-answers"
aria-selected="false"
aria-controls="panel-answers"
tabindex="-1"
class="s-navigation--item">Comments for Answers</button>
</li>
<li>
<button type="button"
role="tab"
id="tab-comment-setting"
aria-selected="false"
aria-controls="panel-comment-setting"
tabindex="-1"
class="s-navigation--item">Setting</button>
</li>
</ul>
</nav>
<div id="panel-question" aria-labelledby="tab-question" class="d-flex hs5">
Comments for question.
</div>
<div id="panel-answers" aria-labelledby="tab-answers" class="d-none d-flex hs5">
Comments for Answers
</div>
<div id="panel-comment-setting" aria-labelledby="tab-comment-setting" class="d-none d-flex hs5">
<div class="d-flex flex--item gs8 gsx as-end">
<button class="flex--item s-btn s-btn__primary" type="button">Save Setting ATSU</button>
<button class="flex--item s-btn" type="button" data-action="s-modal#hide">Cancel</button>
</div>
</div>
</div>
</div>
</aside>
</div>
`;
when inserting it, the button does not work, although its attributes are adequate to open the mode, i implement:
document.querySelector("#atsu-post-comment").addEventListener("click", function (e) {
Stacks.showModal(document.querySelector("#atsu-modal"));
});
which returns the error:

to avoid this error then it was tried to implement:
let scriptInserted = document.createElement('script')
scriptInserted.innerHTML='Stacks.showModal(document.querySelector("#atsu-modal"))';
console.log(scriptInserted);
document.body.appendChild(scriptInserted);
Causing the following error:

To mitigate this last error, an attempt was made to implement chrome.scripting.executeScript but even though it works; this has collisions with its original version that comes on the page, to which there is no access due to security policies.
- Lenguaje dominante
- TypeScript
- Estrellas
- 672
- Forks
- 107
- Merge medio
- 2 d 12 h
- PR fusionados (30 d)
- 26
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de StackExchange/Stacks
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 62/100
StackExchange/Stacks#1030 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
StackExchange/Stacks#1842 ·
-
More editor related icons Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
StackExchange/Stacks#1413 · 2 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 50/100
StackExchange/Stacks#1242 ·
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
StackExchange/Stacks#1224 ·
Todos los issues de StackExchange/Stacks
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
vercel-labs/just-bash#464 ·
-
looksLikeSlug() is ASCII-only, so non-Latin entity slugs (e.g. Korean) skip exact match and collapse Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
TanStack/tanstack.com#1293 ·